0

我是 JQuery 的新手,整个 JQuery 到 PHP 又回到 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 $newprice;

上面的成功函数将其用作“数据”。这一切都有效并且很好。

但是如果我想返回多个值怎么办。

我想我可以用json_encode();

据我了解,类似于:

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

echo json_encode($dataset);

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

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

对不起,如果这很简单

4

4 回答 4

1
 $.ajax({

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

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

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

       }

   })

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

在您的 php 用户中使用 json_encode 而不是 echo。

$firstvalue = 'your first value';
$secondvalue = 'your second value';
echo json_encode(array('firstvalue' => $firstvalue,'secondvalue' => $secondvalue));
于 2013-03-14T15:53:45.437 回答
1

如果为.ajax()as指定 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);
   }
于 2013-03-14T15:56:23.010 回答
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

于 2013-03-14T15:55:06.210 回答
-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]; 

并按您的意愿分配

于 2013-03-14T16:22:32.733 回答