【问题标题】:How can I prevent `[` and `]` to be parsed as array in JavaScript from PHP?如何防止 `[` 和 `]` 从 PHP 解析为 JavaScript 中的数组?
【发布时间】:2018-01-11 11:18:16
【问题描述】:

我的 PHP 中有这样的数组:

$arr['itemDetail[0][itemDescription]'] = Sample Product;
$arr['itemDetail[0][itemPrice]'] = 50000;
$arr['itemDetail[0][itemQty]'] = 2;
$arr['itemDetail[1][itemName]'] = Sample Product Again;
$arr['itemDetail[1][itemDescription]'] = Sample Product Again;
$arr['itemDetail[1][itemPrice]'] = 150000;
$arr['itemDetail[1][itemQty]'] = 1;

该数组将被解析为 URI:

$uri = '/process?'.http_build_query($arr);

然后我在 JavaScript 中检索参数:

<?php foreach ($params as $_key => $_val): ?>
    <script>console.log("<?php echo $_key; ?> <?php echo $_val; ?>");</script>
<?php endforeach ?>

为什么在我的 JavaScript 控制台中 $_key$_val 中的值返回 itemDetail Array

我对@9​​87654328@ 的期望是返回:

itemDetail[0][itemDescription] Sample Product
itemDetail[0][itemPrice] 50000
itemDetail[0][itemQty] 2
itemDetail[1][itemName] Sample Product Again
itemDetail[1][itemDescription] Sample Product Again
itemDetail[1][itemPrice] 150000
itemDetail[1][itemQty] 1

不是

itemDetail array

有什么问题?

【问题讨论】:

  • 我刚刚从itemDetail array 了解到,array 实际上是一个字符串。但我刚刚将 $arr 更改为正确的多维 PHP 数组,仍然返回相同的内容。
  • 你的代码可以正常工作fine

标签: javascript php arrays


【解决方案1】:

PHP 数组被 'echo' 读取为单词 'array'。您需要通过 PHP 将数组编码为 js-string,然后使用 JS 解析:

<?php foreach ($params as $_key => $_val): ?> <script>console.log("<?php echo $_key; ?> JSON.parse('<?php echo json_encode($_val); ?>')");</script> <?php endforeach ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 2011-04-22
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多