如何从 $post 获取序列化数据并循环遍历它?
how to get serialized data from $post and loop through it?
我有一个使用 Cloneya 的表单,这是一个 jquery 插件,可以轻松管理 select 和输入框克隆。
我的 html 表格是这样的:
<div class="spacer-b10 colm colm2">
<label class="prepend-icon"><input type="text" name="acc_code[1]" id="acc_code"
class="gui-input" placeholder="Code" /> </label>
</div>
<div class="spacer-b10 colm colm2">
<label class="field select"><select id="acc_name" name="acc_name[1]" style=
"font-size:12x">
<option value="">
Account
</option>
<option value="Administrator">
Administrator
</option>
<option value="Read Only">
Read Only
</option>
</select> </label>
</div>
cloneya 插件自动创建元素名称。
然后我有以下 ajax 脚本:
jQuery(document).ready(function($) {
$('#account2').submit(function(e) {
e.preventDefault(); // Prevent Default Submission
$.ajax({
url: 'submit.php',
type: 'POST',
data: $(this).serialize() // serialize the form data
})
.done(function(data) {
$('#form-content').fadeOut('slow', function() {
$('#form-content').fadeIn('slow').html(data);
});
})
.fail(function() {
alert('Ajax Submit Failed ...');
});
});
在我的文件中 check.php 我想确保获取所有 $_post 形式,无论是否为数组,如果这些是数组,以确保遍历所有克隆的元素(用于数据库插入)。
执行此操作的最佳方法是什么?
您可以使用 serializeArray()
并将表格发送为 JSON.stringify(paramsToSend)
:
var paramsToSend = {};
paramsToSend['form'] = $('#account2').serializeArray();
$.ajax({
url: 'submit.php',
type: 'POST',
data: {
params: JSON.stringify(paramsToSend)
},
})
.done(function(data) {
$('#form-content').fadeOut('slow', function() {
$('#form-content').fadeIn('slow').html(data);
});
})
.fail(function() {
alert('Ajax Submit Failed ...');
});
});
在您的服务器端,submit.php,您可以:
$parameters = json_decode($_POST['params']);
要将它们转换为数组并将该数组放入 $_POST
,您可以:
$_POST = (array) $parameters;
我有一个使用 Cloneya 的表单,这是一个 jquery 插件,可以轻松管理 select 和输入框克隆。
我的 html 表格是这样的:
<div class="spacer-b10 colm colm2">
<label class="prepend-icon"><input type="text" name="acc_code[1]" id="acc_code"
class="gui-input" placeholder="Code" /> </label>
</div>
<div class="spacer-b10 colm colm2">
<label class="field select"><select id="acc_name" name="acc_name[1]" style=
"font-size:12x">
<option value="">
Account
</option>
<option value="Administrator">
Administrator
</option>
<option value="Read Only">
Read Only
</option>
</select> </label>
</div>
cloneya 插件自动创建元素名称。
然后我有以下 ajax 脚本:
jQuery(document).ready(function($) {
$('#account2').submit(function(e) {
e.preventDefault(); // Prevent Default Submission
$.ajax({
url: 'submit.php',
type: 'POST',
data: $(this).serialize() // serialize the form data
})
.done(function(data) {
$('#form-content').fadeOut('slow', function() {
$('#form-content').fadeIn('slow').html(data);
});
})
.fail(function() {
alert('Ajax Submit Failed ...');
});
});
在我的文件中 check.php 我想确保获取所有 $_post 形式,无论是否为数组,如果这些是数组,以确保遍历所有克隆的元素(用于数据库插入)。
执行此操作的最佳方法是什么?
您可以使用 serializeArray()
并将表格发送为 JSON.stringify(paramsToSend)
:
var paramsToSend = {};
paramsToSend['form'] = $('#account2').serializeArray();
$.ajax({
url: 'submit.php',
type: 'POST',
data: {
params: JSON.stringify(paramsToSend)
},
})
.done(function(data) {
$('#form-content').fadeOut('slow', function() {
$('#form-content').fadeIn('slow').html(data);
});
})
.fail(function() {
alert('Ajax Submit Failed ...');
});
});
在您的服务器端,submit.php,您可以:
$parameters = json_decode($_POST['params']);
要将它们转换为数组并将该数组放入 $_POST
,您可以:
$_POST = (array) $parameters;