将PHP数组值和键传递给Javascript版本

时间:2017-03-21 18:05:28

标签: javascript php arrays json

我已经检查了与我类似的问题,但我似乎无法找到我正在寻找的东西。

我的目标是在我的一个搜索栏中使用autocomplete函数的数据。

所以我有一个来自mysqli查询的PHP数组:

Array ( 
[65a7de8825d0be1a8db3b53d2893a7b0] => Isagani Colorado 
[60f97bb49fa9b035dd4007230a43475e] => Mercedita Labacco 
[77774b62b3e0f465a395491936410bf9] => Simundo Dalisay 
[98bf4551b15e3b0d12adcd2131d10dc8] => Ma.Violeta Buhay 
[341a0067a0a66702eaa96b548e9ac23d] => Roman Bantigue 
[2c493705fc971c5667d0e81d85e6d439] => Mavita Gonzales 
[5b233111cbc932b84fb86859ebb1bd6d] => Romeo Galang 
[2eb29f296d567470c1e9a6c376d33296] => Jerome Calayag 
[4a7177533b06cbd0f8b222969a770cff] => Racquel Pajares 
[333270ceb56e62de9dc1b2591ed5e686] => Rogelio Gamba 
[206b7ce18360b7a3c88d6caa6401292a] => Amelia Enriquez 
[53c2db056f0f51d975562f8276fecf85] => Rufino DeVega )

我使用<?php echo json_encode($data); ?>在Javascript中传递了我的数组:

{
"65a7de8825d0be1a8db3b53d2893a7b0":"Isagani Colorado",
"60f97bb49fa9b035dd4007230a43475e":"Mercedita Labacco",
"77774b62b3e0f465a395491936410bf9":"Simundo Dalisay",
"98bf4551b15e3b0d12adcd2131d10dc8":"Ma.Violeta Buhay",
"341a0067a0a66702eaa96b548e9ac23d":"Roman Bantigue",
"2c493705fc971c5667d0e81d85e6d439":"Mavita Gonzales",
"5b233111cbc932b84fb86859ebb1bd6d":"Romeo Galang",
"2eb29f296d567470c1e9a6c376d33296":"Jerome Calayag",
"4a7177533b06cbd0f8b222969a770cff":"Racquel Pajares",
"333270ceb56e62de9dc1b2591ed5e686":"Rogelio Gamba",
"206b7ce18360b7a3c88d6caa6401292a":"Amelia Enriquez",
"53c2db056f0f51d975562f8276fecf85":"Rufino DeVega"
}

如果我想获取值,我可以使用<?php echo '["' . implode('", "', $data) . '"]'; ?>;获取其中任何一个;如果我想获取密钥,我可以使用<?php echo '["' . implode('", "', array_keys($data)) . '"]'; ?>;

我的[noob]问题是,我如何格式化数据,以便在用户选择输入框中的名称(值)时获取键值?

enter image description here

修改

我需要在我的Javascript函数上传递密钥:

function SearchGrave(){
    var uuid = $('#name').val();
    $("#grave-content").load("fetch_grave.php?uuid="+encodeURIComponent(uuid));
}

非常感谢任何帮助。

非常感谢,

1 个答案:

答案 0 :(得分:0)

经过几次试验,这就是我得到的。

我在while循环中将我的数组语法更改为:

$data[] = array('uuid' => $grave_query_r['uuid'], 'full_name' => $grave_query_r['firstname'].' '.$grave_query_r['lastname']);

在我的Javascript中调用它:

var choices = <?php 
    echo '['.implode(', ', array_map(function ($entry) {
                      return '["'.$entry['uuid'].'","'.$entry['full_name'].'"]';
                    }, $data)).']';.
?>

谢谢大家!