【问题标题】:How to get PHP array values in jQuery如何在 jQuery 中获取 PHP 数组值
【发布时间】:2018-11-24 02:28:34
【问题描述】:

我有一个 PHP 脚本通过 ajax 将此数组发送到客户端:

Array
(
    [0] => $209.90
    [1] => $20.99
    [2] => $188.91
)

我以这种方式将数组发送给客户端:

return $servicePrices;

我有这个 jQuery 语句:

success: function(data) {
  //console.log('Success'+data);
  $( '#tourSubtotal' ).val( data[0] );
  $( '#tourDiscount' ).val( data[1] );
  $( '#tourTotal' ).val( data[2] );
},

我对每个 ID 值的结果是 Arr。相反,如何从我的 ajax jQuery 中的数组中获取 3 个货币数据值?

【问题讨论】:

  • 您是否将 PHP 数组解析为 JSON 对象或类似的东西?
  • 您如何将这些发送给客户?
  • 查看我修改后的 OQ @MasivuyeCokile,了解我如何将数组从 PHP 发送到 jQuery——谢谢。
  • @H.Ferrence 根据我的回答,您是否愿意发布 PHP 的完整代码,我可以帮助您设计端点以进行更改。或者你想从我的回答中拿走它,如果你被卡住了,就给我喊一声。

标签: php jquery arrays ajax


【解决方案1】:

看起来你正在使用print_r() 函数来显示这个:

Array
(
    [0] => $209.90
    [1] => $20.99
    [2] => $188.91
)

在这种格式中,它与任何 string 一样有用。您必须使用 json_encode() 将其转换为两种语言都能理解的格式:

["$209.90", "$20.99", "$188.91"]

你的 PHP 代码应该是这样的:

<?php
  $json = some_value;
  // Remove this:
  // print_r($json);
  // Instead, write this:
  echo json_encode($json);
?>

然后您可以按照您指定的方式在 JavaScript 中使用它。此外,jQuery 足够聪明,可以理解响应是 JSON,并且在大多数情况下您不需要JSON.parse()

【讨论】:

  • 我已经添加了“字符串”部分来尝试澄清它不是一个数组,而是一个字符串
  • "jQuery 足够聪明,可以理解响应是 JSON" - 如果服务器表现良好并设置了正确的 Content-Type 标头,或者客户端强制 dataType 或使用 $.getJSON。如果没有这样的提示,jQuery 应该选择安全并且不做额外的处理。
  • @Amadan 是的,同意。 :D
【解决方案2】:

您可以从 PHP 中返回 JSON 编码格式的数组,如下所述:

$result = array(
    '0' => '$209.90'
    '1' => '$20.99'
    '2' => '$188.91'
);
return json_encode($result);

在 AJAX 成功函数上你可以使用:

success: function(data) {
   var temp = JSON.parse(data);
   $( '#tourSubtotal' ).val( temp[0] );
   $( '#tourDiscount' ).val( temp[1] );
   $( '#tourTotal' ).val( temp[2] );
},

希望这会有所帮助。

【讨论】:

  • 使用正确的 MIME 类型和/或 jQuery $.ajax 选项 dataType,您实际上并不需要 JSON.parse,jQuery 会为您完成。
  • 完美工作@Kishen Nagaraju !!谢谢!
猜你喜欢
  • 2016-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
  • 1970-01-01
相关资源
最近更新 更多