我想使用this jquery plugin从数据库中获取值...
我创建了jquery ajax代码和HTML来从数据库中获取值:
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<link href="http://ivaynberg.github.com/select2/select2-3.3.2/select2.css" rel="stylesheet" type="text/css" />
<script src="http://ivaynberg.github.com/select2/select2-3.3.2/select2.js"></script>
</head>
<body>
<select id="test" style="width:200px;">
<option value=""><option>
</select>
<script>
$('#test').select2({
ajax: {
dataType: "json",
url: "json.php",
results: function (data) {
return {results: data};
}
}
});
</script>
</body>
和json.php代码:
<?php
$pdo=new PDO("mysql:dbname=ddd;host=localhost","ddd","ddd");
$statement=$pdo->prepare("SELECT id,ime_prezime FROM radnici");
$statement->execute();
$results=$statement->fetchAll(PDO::FETCH_ASSOC);
$json=json_encode($results);
echo $json;
?>
当我运行php代码时,我得到了json:
[{"id":"1","ime_prezime":"Pera Peric"}]
问题不在于PHP代码......我的html / jquery代码有什么问题?
我什么都没得到,我无法从json.php文件中获取值
更新
我发现错误是json格式,但是现在我无法保存我得到的值,所以当我点击值时就消失...
<input id="test" style="width:300px;">
<select multiple id="test" style="width:300px"></select>
<script>
function formatValues(data) {
return data.ime_prezime;
}
$('#test').select2({
ajax: {
dataType: "json",
url: "json.php",
results: function (data) {
return {results: data};
}
},
formatResult: formatValues
});
</script>
答案 0 :(得分:1)
您需要返回id
,text
对并使用以下结构;
<input type="hidden" name="test" id="test" style="width:200px;"/>
$('#test').select2({
ajax: {
dataType: "json",
url: "json.php",
results: function (data) {
return {results: data};
}
}
});
您可以在此处查看演示: http://jsfiddle.net/huseyinbabal/68fD2/1/ 。在演示中,我使用了本地数据,但它可以使用上面的ajax代码。
修改强>
如果您想在演示中执行此操作,可以使用以下内容;
function formatValues(data) {
return data.ime_prezime;
}
var test = $('#test');
var data = [{"id":"1","ime_prezime":"Pera Peric"},
{"id":"2","ime_prezime":"Something else"},
{"id":"3","ime_prezime":"Lorem"},
{"id":"4","ime_prezime":"Ipsum"}
];
$(test).select2({
data:{results: data, text: 'ime_prezime'},
width: "300px",
formatResult: formatValues,
formatSelection: formatValues,
multiple: true
});
以下是一个有效的演示: http://jsfiddle.net/huseyinbabal/68fD2/6/