【问题标题】:Using Dojo In PHP File在 PHP 文件中使用 Dojo
【发布时间】:2016-02-17 20:04:01
【问题描述】:

我正在尝试在我的网站上实现 dojo 组合框。但我没有成功。

简而言之,我在 PHP 中获得了一个数组,我希望该数组在下拉列表中可用,但他们应该能够键入任何他们想要的内容,因此是组合框。

我已尝试按照以下链接中的说明进行操作。但这让我比开始时更糟。 谁能提供一个简单有效的方法来实现它?

链接:

https://dojotoolkit.org/reference-guide/1.10/dijit/form/ComboBox.html#examples

How to implement Dojo autocomplete similar to jQuery UI autocomplete?

【问题讨论】:

  • 提供您的来源,以便我们为您提供帮助
  • @bRIMOsBor 请看这里jsfiddle.net/fuanzcps
  • 您需要创建 data.php ,它返回一个包含您的数据的 json 数组,然后对 data.php 进行 ajax 调用并创建 new Memory({Data:responseServer}) ,提供 php 代码以查看您的代码

标签: javascript php jquery combobox dojo


【解决方案1】:

您必须确保您的服务器返回有效的 JSON。这将是一个以字典样式的数组作为项目的平面数组(数字索引)。这是一个可能的样本;

<?php
   //requestServerData.php
   $data = array();
   $item_one = array("name" => "state1", "id" => "s1");
   $item_two = array("name" => "state2", "id" => "s2");
   array_push($item_one);
   array_push($item_two);
   echo json_encode($data);
?>

把它和你提供的小提琴放在一起,通过requestServerData函数模拟XHR,就是这样:

// global handles for the store and combobox
var combo = null, store = null;
// simulaition of a call to PHP server, which returns a json encoded array
// e.g. "[{name:'state1', id:'s1'},{name:'state2', id:'s2'}]"
function requestServerData() {
     var responseText = "[{name:'state1', id:'s1'},{name:'state2', id:'s2'}]";
     var data = eval(responseText);
     var newStore = new dojo.store.Memory({"data": data});
     combo.set('store', newStore);
     combo.set('value', data[0].name)
}
// since domReady is in the require, this code block is not run until page loads
require([
    "dojo/store/Memory", "dijit/form/ComboBox", "dojo/domReady!"
], function(Memory, ComboBox){
    store = new Memory({
        data: [
            {name:"Loading", id:"LOAD"}
        ]
    });

    combo = new ComboBox({
        id: "stateSelect",
        name: "state",
        value: "Loading",
        store: store,
        searchAttr: "name"
    }, "stateSelect");
    combo.startup();
    requestServerData()
});

你的小提琴,更新:https://jsfiddle.net/fuanzcps/3/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 2014-05-18
    • 1970-01-01
    相关资源
    最近更新 更多