使用PHP和jQuery修改数组以输出JSON
我目前正在和 他们在演示中提供的代码是:使用PHP和jQuery修改数组以输出JSON,php,jquery,mysql,autocomplete,Php,Jquery,Mysql,Autocomplete,我目前正在和 他们在演示中提供的代码是: <?php $q = strtolower($_GET["q"]); $items = array( "Peter Pan"=>"peter@pan.de", "Molly"=>"molly@yahoo.com", ); $result = array(); foreach ($items as $key) { if (strpos(strtolower($key), $q) !== false) { a
<?php
$q = strtolower($_GET["q"]);
$items = array(
"Peter Pan"=>"peter@pan.de",
"Molly"=>"molly@yahoo.com",
);
$result = array();
foreach ($items as $key) {
if (strpos(strtolower($key), $q) !== false) {
array_push($result, array(
"name" => $key
));
}
}
echo json_encode($result);
?>
这是我的jQuery/Javascript:
$("#email").autocomplete('emails.php', {
multiple: false,
dataType: "json",
parse: function(data) {
return $.map(data, function(row) {
return {
data: row,
value: row.name,
result: row.name
}
});
},
formatItem: function(item) {
return format(item);
}
}).result(function(e, item) {
$("#content").append("<p>selected " + format(item) + "</p>");
});
});
任何关于正确设置查询的帮助都是非常特别的。谢谢 我认为之所以会出现这种情况,是因为您使用的是json中转换的数组,然后您也需要在jquery结果中使用数组的方式。或者,您可以不使用json而生成json字符串,格式为:“[{name:john,year:2009},{name:tom,year:2000},…]” 您的jquery很好。几个小时后,我发现触发错误的是“format”函数中的格式设置 如果你看一下下面的源代码 您将看到以下看似无关紧要的函数
function format(mail) {
return mail.name + " <" + mail.to + ">";
}
如果您省略了“小于”和“大于”表示,那么您可能得到了
value is undefinded
在控制台中循环通过第一条记录后出错。出于某种奇怪的原因,“小于”和“大于”符号很重要。确保将它们保存在格式化函数中
function format(mail) {
return mail.name + " <" + mail.to + ">";
}
value is undefinded