我有一个selectAll函数,将结果作为对象返回。
$customers = $app['database']->selectAll('customers');
这是$ customers变量的var_dump,以防万一:
array(4) {
[0]=> object(stdClass)#5 (7) { ["id"]=> string(2) "10" ["name"]=> string(10) "Thisted El" ["address"]=> string(13) "Otto Monsteds" ["city"]=> string(5) "Vej 8" ["phone"]=> string(9) "503982350" ["zip"]=> string(6) "481922" ["notes"]=> string(0) "" }
[1]=> object(stdClass)#6 (7) { ["id"]=> string(2) "11" ["name"]=> string(11) "Bibin Vinod" ["address"]=> string(8) "Kottayam" ["city"]=> string(5) "Kochi" ["phone"]=> string(10) "0294294022" ["zip"]=> string(6) "129042" ["notes"]=> string(0) "" }
}
我需要将这些对象的'name'属性用于自动填充表单。我在此链接中使用自动完成脚本。
在我的php文件中,我在表格后添加了上述自动填充功能。然后我在此对象上使用json_encode,然后在JSON.parse上使用。我使用循环将名称仅添加到javascript数组,最后将其传递给自动完成功能。
var js_data = '<?php echo json_encode($customers); ?>';
var js_obj = JSON.parse(js_data);
for (var i = 0; i < arrayLength; i++)
{
customername[i] = js_obj["name"];
}
autocomplete(document.getElementById("customers"), customername);
但是,自动填充表单不起作用。关于这个问题,我需要帮助。谢谢。
我已经解决了这个问题。首先,我将对象数组转换为PHP中的普通数组:
$customers = $app['database']->selectAll('customers');
$allCustomers = array();
foreach($customers as $key => $val)
{
$allCustomers[] = $val;
}
然后在javascript部分中,我使用json encode
了此变量,并使用了for循环将每个'name'属性添加到javascript数组中,最后将其同样传递给autocomplete函数:
var js_data = <?php echo json_encode($allCustomers) ?>;
var customername = [];
for (var i = 0; i < js_data.length; i++)
{
customername[i] = js_data[i]["name"];
}
autocomplete(document.getElementById("customers"), customername);
非常感谢大家提供的帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句