jquery 无法通过serialize php传递字段数据数组

6pp0gazn  于 2023-10-17  发布在  jQuery
关注(0)|答案(1)|浏览(115)

我有这个表单字段是动态生成的

<form id="passengers_details">
        <div class="row clearfix passengerRow">
               <div class="col-md-6 col-sm-6 col-xs-12 form-group">
                  <input type="text" placeholder="first name" name="firstname[]">
                                        </div>
                 <div class="col-md-6 col-sm-6 col-xs-12 form-group">
                <input type="text" placeholder="Last Name" name="lastname[]">
                  </div>
            <div class="col-md-6 col-sm-6 col-xs-12 form-group">
            <input type="text" placeholder="Phone Number Optional" name="phone[]">
             </div>
             <div class="col-md-6 col-sm-6 col-xs-12 form-group">
             <input type="email" placeholder="mail Id Optional" name="email[]">
             </div>
                                           
           </div>
      <a class="booked addPassengers">Add </a>
   </form>

脚本:

$(document).on('click', '.addPassengers', function(){
        console.log('add passengers ');

        var clone = $(".passengerRow").eq(0).clone(); 
        $("#passengers_details").append(clone); 

      });

我正在尝试通过aplogic传递表单数据和其他字段

jQuery.ajax({    
            url: "booking.php",
            data:'first_name='+$("#first_name").val()+
            '&serializePassengerData='+$("#passengers_details").serialize()+
            '&pkid='+$("#pkid").val(),
            type: "POST",
            dataType: "JSON",
            success:function(data){

但是仅获得第一字段值,即,php中的名字

print_r($_POST['serializePassengerData']); die();

如果我控制台$("#passengers_details").serialize(),所有数据都可用。

tpxzln5u

tpxzln5u1#

serialize()将给予你一个完整的查询字符串,而不是一个你可以简单地添加到查询字符串中的键的值。
使用类似于:

jQuery.ajax({    
    url: "booking.php",
    data: $("#passengers_details").serialize() +
    '&pkid='+$("#pkid").val(),
    type: "POST"
});

这在服务器端将导致:

array(5) {
  ["firstname"]=>
  array(2) {
    [0]=>
    string(7) "First 1"
    [1]=>
    string(7) "First 2"
  }
  ["lastname"]=>
  array(2) {
    [0]=>
    string(6) "Last 1"
    [1]=>
    string(6) "Last 2"
  }
  ["phone"]=>
  array(2) {
    [0]=>
    string(7) "Phone 1"
    [1]=>
    string(7) "Phone 2"
  }
  ["email"]=>
  array(2) {
    [0]=>
    string(6) "Mail 1"
    [1]=>
    string(6) "Mail 2"
  }
  ["pkid"]=>
  string(9) "undefined"
}

相关问题