我有一个表格,让人们进入他们的客户。
此表单允许用户根据需要添加任意数量的电话号码,电子邮件和地址。
电话和电子邮件包含每个添加的行(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页面的对象,我该如何获取值?
答案 0 :(得分:3)
序列化您的表单...使用ajax的data
将序列化数据发送到服务器......
data:$('#YourFORMID').serialize();
这是documentaiotn已经参考了这些例子......
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'];
答案 1 :(得分:1)
您是否正在尝试重新发明jQuery的serialize()
var frm = $("#myForm");
var values = frm.serialize();
//make Ajax call
$.post("someUrl", values, function(){} );
答案 2 :(得分: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"];