[英]Pass array of data from form, to ajax, to PHP post file
我会尽量保持简短。 我有一个表单,其中的输入字段(其中的54个)自动填充了数据库中的数据。 使用PHP while
循环为每个输入字段的ID分配一个ID。 用户可以编辑值,然后单击提交。 提交表单后,数据将传递到jquery中的数组。 我希望能够通过POST将数组从ajax传递到PHP。
表格/提交页面
$settings = array();
$counter = 0;
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_assoc($result)) {
$settings[$counter] = $row['value'];
echo "<tr>
<td>" . $row[$settings] . "</td>
<td><input type=\"text\" id=\"" . $counter . "\" value=\""
. $settings[$counter] . "\"></td>";
counter++;
}
}
mysqli_close($svr_link);
jQuery脚本(在表单/提交页面内部)
$('#update').click(function(event) {
event.preventDefault();
var settings = [];
for (i=0; i<55; i++) {
settings[i] = $('#' + i).val();
}
$.ajax({
type: "POST",
url: "pages/post.php",
data: {settings:settings},
success: function(data) {
$('#message').html(data);
}
});
});
我的问题是:
我是否在ajax调用中正确设置了该数据数组?
如何提取和处理post.php文件中的数据数组?
让我知道我是否省略了一些相关的内容
如果您要以JSON格式发送数组数据,建议您在客户端设置的dataType
中设置dataType
。
$.ajax({
type: "POST",
url: "pages/post.php",
dataType: 'json',
data: {settings:settings},
success: function(data) {
$('#message').html(data);
}
});
在服务器端,使用json_decode
函数获取数组,这样您就可以轻松处理数据。 就像这样:
json_decode($_POST['settings'], true);
将name
属性添加到数组形式的所有输入
while($row = mysqli_fetch_assoc($result)) {
$settings[$counter] = $row['value'];
echo "<tr>
<td>{$row[$settings]}</td>
<td>
<input
type=\"text\"
id=\"{$counter}\"
name=\"settings[{$counter}]\"
value=\"{$settings[$counter]}\"
>
</td>";
counter++;
}
然后向表单添加一个id
(如果您没有表单标签,请将ID放在包含所有输入的HTML元素上,例如table
),广告依赖jQuery serializeArray()
let data = $('#formId').find(':input').serializeArray();
因此,您的代码变为:
$('#update').click(function(event) {
event.preventDefault();
let data = $('#formId').find(':input').serializeArray();
$.ajax({
type: "POST",
url: "pages/post.php",
data: data,
success: function(data) {
$('#message').html(data);
}
});
});
jQuery.serializeArray()
将一组表单元素编码为名称和值的数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.