【问题标题】:Pass PHP Array Values and Keys to Javascript Version将 PHP 数组值和键传递给 Javascript 版本
【发布时间】:2017-03-21 18:05:27
【问题描述】:

我已经检查了与我相似的问题,但似乎找不到我要找的问题。

我的目标是在我的一个搜索栏中将这些数据用于我的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); ?> 用 Ja​​vaScript 传递了我的数组:

{
"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] 问题是,如何格式化我的数据,以便在用户在输入框中选择名称(值)时获取键值?

编辑:

我需要将密钥传递给我的 Javascript 函数:

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

非常感谢任何帮助。

非常感谢,

伊莱

【问题讨论】:

  • 您需要在 PHP 或 JavaScript 中找到值的键吗?
  • @Halcyon 请查看我的编辑。谢谢!
  • 您可以将选项值设置为json键
  • @hassan 我认为他使用的不是select/option,而是自定义的建议输入。找到一个值的关键不应该太难。您可以找到许多此类功能的示例。这是一个:github.com/jashkenas/underscore/blob/master/underscore.js#L1094
  • 他正在使用一个自动完成插件,我认为它会将 json 转换为隐藏的选择菜单,然后将其渲染为 html,但是我会在回家后检查它

标签: javascript php arrays json


【解决方案1】:

经过几次实验,这就是我得到的结果。

我在 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)).']';.
?>

谢谢大家!

【讨论】:

    猜你喜欢
    • 2011-05-16
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多