0

我有一个表格,人们可以在其中输入他们的客户。

此表单允许用户根据需要添加任意数量的电话号码、电子邮件和地址。

电话和电子邮件对于添加的每一行都有类型和数据字段,(phone_type, phone_data)而地址对于每一行都有类型、街道、城市、州和邮政编码字段(address_type, address_street, address_city, address_state, address_zip)

例如,当用户添加电话字段时,它会添加:

<input type="text" name="phone_type[]" />
<input type="text" name="phone_data[]" />

我需要通过 Ajax 将表单数据发送到 PHP 以处理并存储在数据库中。

我曾想过将它存储在一个对象中的数组中。

phone = new Object();
var phone.data = new Array(), 
phone.type = new Array();
$("input[name='phone_data[]']").each(function() {
  if($(this).val() != '') {
  phone.data.push($(this).val());
  phone.type.push($('select[name="phone_type[]"]').val());
})

这似乎不起作用。我什至正确地接近这个?

此外,一旦我将它放入通过 Ajax 发送到 PHP 页面的对象中,我如何获取这些值?

4

3 回答 3

3

序列化您的表单...使用dataajax 将序列化数据发送到服务器...

 data:$('#YourFORMID').serialize();

这是查看示例的文档...

http://api.jquery.com/jQuery.post/

并在您的 PHP 中获取数据(如果您使用 ajax 类型作为帖子)

 $data=$_POST['phone_data'];
 $type=$_POST['phone_type'];

如果ajax type : GET

 $data=$_GET['phone_data'];
 $type=$_GET['phone_type'];
于 2012-12-12T05:10:08.833 回答
1

您是否正在尝试重新发明 jQuery 的serialize()

var frm = $("#myForm");
var values = frm.serialize();

//make Ajax call
$.post("someUrl", values, function(){} );

http://jsfiddle.net/BZcja/

于 2012-12-12T05:07:48.130 回答
1

你绝对可以使用 jQuery serialize()。在触发处理的事件中,您可以执行以下操作:

$.ajax({  
    type: "POST",  
    url: "your_php_processing_page.php",  
    data: $("#FormID").serialize(),  
    dataType: "json",  
    success: function(data){
        // do stuff here
    },  
    error: function() {  
        // do stuff here             
    }  
});

your_php_processing_page.php您可以获取如下值:

$phone_types = $_POST["phone_type"];
$phone_data = $_POST["phone_data"];
于 2012-12-12T05:22:22.543 回答