1
私のデータベースからemoteデータフェッチを使用してxeditableプラグインselect2を実装しようとしています。データフェッチスクリプトがjsonデータを返していますが、ajaxコールはそれを取得しません。私のコードは次のようになります。IDxeditable select2リモートデータをセレクトフィールドにフェッチする
Javascriptを
$('#username ').editable({
type: 'select2',
url: '../payments/person.php',
pk: 1,
onblur: 'submit',
emptytext: 'None',
select2: {
placeholder: 'Select a Requester',
allowClear: true,
width: '230px',
minimumInputLength: 3,
id: function (e) {
return e.person_id;
},
ajax: {
url: '../payments/person.php',
dataType: 'json',
data: function (term, page) {
return { query: term };
},
results: function (data, page) {
return { results: data };
}
},
formatResult: function (employee) {
return employee.name;
},
formatSelection: function (employee) {
return employee.name;
},
initSelection: function (element, callback) {
return $.get('../payments/person.php', { query: element.val() }, function (data) {
callback(data);
}, 'json'); //added dataType
}
}
});
PHPコードによって発見 HTML は、以下のようなJSON形式でデータを返します。
[{"id":"1","name":"AdminAdmin"}]
私はAjaxのコードがあると確信していますデータを適切に収集していないし、それをクリックするとポップアップも読み込まれない。誰かが助けることができたら。
次のような外観を取得するための私のPHPコード:
if (isset($_POST['person_id'])) {
$id = trim($_POST['person_id']);
$result = array();
$id = mysqli_real_escape_string($con,$id);
$res = mysqli_query($con,"SELECT person_id,Concat(first_name ,last_name) as name FROM k_people ");
while ($row = mysqli_fetch_array($res)) {
$result[] = array(
'id' => $row['person_id'],
'text' => $row['name']
);
}
echo json_encode($result);
}
名前はconcat(姓、名字)のselect文の結果を格納します – phpnewbie
しかし、select2はオプションが "id"と "text"属性を持つと想定しています。 "名前"の名前を "テキスト"に変更できますか?どのバージョンのselect2ですか? – programmerKev
私はそれをテキストに変更し、FirefoxのネットワークタブでParamタブをチェックしました - このリクエストのパラメータはありません。 person.phpのレスポンスは200 – phpnewbie