如何在jQuery中获取PHP数组值

时间:2018-06-14 10:29:12

标签: php jquery arrays ajax

我有一个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个货币数据值?

2 个答案:

答案 0 :(得分:7)

看起来您正在使用print_r()函数来显示:

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

在该格式中,它与任何字符串一样有用。您必须使用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()

答案 1 :(得分:3)

您可以从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] );
},

希望这有帮助。