传递值从ajax调用到PHP

时间:2014-11-16 07:36:18

标签: php jquery ajax

$.ajax({
 url: 'test.php',
 type: "POST",
 data: registerForm.serialize(), region: $("#regio option:selected").text(),
 success: function(data) {
 console.log(data)
 }
});

现在我使用这个我获得registerForm.serialize()的所有数据我可以使用$_POST['the_name'];

在test.php中调用它们

现在我需要在test.php中$("#regio option:selected").text()时传递给test.php echo $_POST['region']它没有看到我在ajax中发送到test.php的region属性。

如何将$("#regio option:selected").text()传递给test.php并在test.php中调用它。

2 个答案:

答案 0 :(得分:0)

您可以在其中添加另一个查询字符串:

data: registerForm.serialize() + '&region=' + $("#regio option:selected").text(),

然后,只需将其视为PHP中的正常帖子值

$region = $_POST['region'];

答案 1 :(得分:0)

让我们重新缩进代码:

$.ajax({
   url: 'test.php',
   type: "POST",
   data: registerForm.serialize(), 
   region: $("#regio option:selected").text(),
   success: function(data) {
      console.log(data)
   }
});

上面的代码定义了传递给region的对象的$.ajax()属性。 region属性不属于data属性,实际上您的data属性甚至不是对象。正如另一个答案所示,您可以使用字符串连接添加另一个查询参数,或使用serializeArray方法将对象推送到返回的数组中:

// returns an array of objects with `name` and `value` properties 
var postData = registerForm.serializeArray();
postData.push({
   name: 'region',
   value: $("#regio option:selected").text()
});

$.ajax({
   url: 'test.php',
   type: "POST",
   data: postData, 
   success: function(responseData) {
      console.log(responseData);
   }
});