0

点击处理程序

$('.to-pay').click(function(e)
{
   var finputs=$('form.inputs-form').serialize();
   alert(finputs);
   $.ajax(
   {
       url: "URL_HERE",
       type:"POST",
       data: finputs,
       success: function(data)
       {
      $('.another-div').html(data);
       }
   });
});

PHP部分

$pid=$_POST['pid'];
$size=$_POST['product-size'];
$quantity=$_POST['quantity'];


foreach($pid as $key => $prod_id)
{
  echo "This part is called";
  echo $prod_id." of size ".$size[$key]." ".$quantity[$key]." numbers.";
}

问题出在 PHP 方面。该foreach()部分没有得到执行。在 jQuery 方面,我检查了使用alert(),数据看起来像,

pid%5B%5D=1&product-size%5B%5D=100&quantity%5B%5D=10&pid%5B%5D=2&product-size%5B%5D=150&quantity%5B%5D=20

PHP端有什么问题?

4

2 回答 2

0

伙计,你得到的警报是一个字符串

.serialize() 描述:将一组表单元素编码为字符串以进行提交。

解决方案:改用 .serializeArray()

$('form.inputs-form').serializeArray();

参考这个http://api.jquery.com/serializeArray/

然后在php端相应地更改代码。

或者
在 PHP 端分解 $_POST['data'],使其成为一个 php 数组,然后使用 foreach 迭代数组

于 2013-08-27T06:06:52.150 回答
0

尝试:

$pid=$_POST['pid'];
$size=$_POST['product-size'];
$quantity=$_POST['quantity'];

$i = 0;
foreach($pid as $prod_id)
{
  echo "This part is called";
  echo $prod_id." of size ".$size[$i]." ".$quantity[$i]." numbers.";
$i++
}
于 2013-08-27T08:51:51.700 回答