我使用json和php自动完成。它工作,但现在我需要从json获取第二个数组。
这是我在source.php上的脚本
<?php
$req = "SELECT namaBarang, harga FROM masternamabarang WHERE namaBarang LIKE '%".$_REQUEST['term']."%' ";
$query = mysql_query($req);
while($row = mysql_fetch_array($query))
{
$results[] = array('label' => $row['namaBarang'],'harga' => $row['harga']);
}
echo json_encode($results);
?>
和autocomplate.php的这个脚本
<html>
<head>
<script src="js/jquery-1.9.1.js"></script>
<script src="json/js/jquery-ui-1.10.3.js"></script>
<script>
$(function()
{
$( "#NAMA" ).autocomplete({
source: 'source.php'
});
});
</script>
<script>
function ambil()
{
var x = document.getElementById('NAMA').value;
document.getElementById('HARGA').value=x;
}
</script>
</head>
<body>
<form>
<input type="text" name="NAMA" size="50" id="NAMA" onchange="ambil()"/><br>
<input type="text" name="HARGA" size="50" id="HARGA" />
</form>
</body>
自动完成效果很好,但我需要的是,从JSON数组中获取第二个数组[HARGA]并将其填充到文本框HARGA上。
感谢您的回答。
答案 0 :(得分:1)
echo json_encode($results[1]);
这是你想要的吗?
答案 1 :(得分:1)
你的script.php工作正常。它给你json结果像
[{"label":"laba","value":"vala"},{"label":"labb","value":"valb"}]
你可以像这样在浏览器中记录(javascript)结果
console.log(data[0].value); // array index 0 for first row, you can try 1,2 etc...
您可能需要选择方法来绑定所选内容:
$( "#search" ).autocomplete({
source: data,
select: function( event, ui ) {
console.log(ui); // log selected data row
$('#mySelectedInput').val(ui.item.value); // bind value wherever you like
}
});
资源
http://api.jqueryui.com/autocomplete/#event-select
http://jqueryui.com/autocomplete/#custom-data