使用PHP返回的JQuery拆分JSON数组

时间:2013-03-14 15:50:04

标签: php jquery

我是JQuery和整个JQuery的新手,回到JQuery流程。

所以我有一个简单的ajax JQuery脚本:

$.ajax({

           type: "POST",
           url: "includes/calc.php",
           data: {

               'var1':var1,
               'var2':var2,

           },
           success: function(data){
               alert(data);
               $("input#hiddenprice").val(data);
               $('#'+itemprice).html("€"+data);

           }

       })

这是一个PHP脚本,然后我使用一个简单的echo

返回一个值
echo $newprice;

上面的成功函数将其用作“数据”。这一切都运作良好。

但如果我想返回多个值,该怎么办呢。

我想我可以使用json_encode();

据我理解的是:

$dataset = array($var1, var2, var3);

echo json_encode($dataset);

但是说我有两个值,我如何将它们都放入JSON中,然后如何将它们拆分到另一端。

所以说“数据”是一个数组,我怎么告诉JQuery拆分它?

很抱歉,如果这很简单

4 个答案:

答案 0 :(得分:1)

 $.ajax({

       type: "POST",
       url: "includes/calc.php",
       datatype : 'json',
       data: {

           'var1':var1,
           'var2':var2,

       },
       success: function(data){
           alert(data.firstvalue);
           alert(data.secondvalue);

       }

   })

请查看该数据类型。现在响应需要是json。

在你的php用户json_encode而不是echo。

$firstvalue = 'your first value';
$secondvalue = 'your second value';
echo json_encode(array('firstvalue' => $firstvalue,'secondvalue' => $secondvalue));

答案 1 :(得分:1)

如果将.ajax()的dataType选项指定为json,jQuery将自动将调用返回的JSON字符串解析为适当的javascript对象/数组。

所以你的电话可能如下:

$.ajax({

   type: "POST",
   url: "includes/calc.php",
   dataType: "json",
   data: {

       'var1':var1,
       'var2':var2,

   },
   success: function(data){
       alert(data);
       $("input#hiddenprice").val(data);
       $('#'+itemprice).html("€"+data);

   }

})

现在,假设您的PHP脚本的响应是一个JSON字符串,表示这样的对象:

{"key1":"value1","key2":"value2"}

在您的成功处理程序中,您只需将此作为对象访问:

   success: function(data){
       alert(data.key1);
       alert(data.key2);
   }

或者,如果返回的JSON字符串表示如下数组:

["value1","value2"]

然后您可以在成功处理程序中访问数组值,如下所示:

   success: function(data){
       alert(data[0]);
       alert(data[1]);
   }

如果您不想添加dataType选项,您还可以选择手动将返回的JSON字符串解析为对象/数组,如下所示:

   success: function(data){
       var dataObj = JSON.parse(data);
       alert(dataObj.key1);
       alert(dataObj.key2);
   }

答案 2 :(得分:0)

有许多方法可以在JSON对象中组织数据。最简单的是返回一个字符串或数字的线性数组。使用http://jsonlint.com/测试您的数据以查看它是否是有效的JSON,或者只是将PHP数组(线性或关联)提供给json_encode

如果data是JSON线性数组,您可以将其视为success回调中的任何其他JavaScript数组:

var first = data[0]; // first element
var second = data[1]; // second element

答案 3 :(得分:-1)

使用符号或任何自定义数据破坏您的php变量

$var[0] = '1st variable';
$var[1] = '2nd variable';
$var[2] = '3rd variable';

echo implode('_SPLIT_',$var);

现在在jquery成功函数

使用' SPLIT '

拆分响应

作为

 var response = data.responseText.split('_SPLIT_');
 var variable1 = response[0];
 var variable2 = response[1];
 var variable3 = response[2]; 

并按照您的意愿分配