我需要使用 jQuery 通过 .ajax 提交一个 html 表单。当我正常提交而不是通过 ajax 提交时,一切正常。我在切换到 ajax 时遇到了问题。
该表单具有不断变化的输入数量。(特定组中的每个用户一个,组可以有不同数量的用户)。所以我这样命名输入:
<input type="hidden" name="<?php echo 'sampleA['. $i .']'; ?>" value="sampleValue" />
其中 $i 是一个计数器,因此输入是 sampleA['1'] 和 sampleA['2'] 等等。
我为每个用户提供了另一个输入,以相同的方式完成,我们可以称之为 sample2['1'] 等等。
因此,使用 php,我只需获取这 2 个数组并使用类似的计数器运行它们,然后根据需要将它们插入到我的数据库中。这一切都很好。但我需要使它成为ajax。
如何通过 jQuery 的 .ajax 函数将这两个数组传递给 php 脚本,然后如何在 php 中处理它?
我已经尝试在我的表单上使用 .serialize ,但是它将所有用户的两个输入序列化到一个数组中,并且我无法在 php 方面正确地反序列化。
以下内容不起作用,但我会将其包含在此处以向您展示我一直在做的事情:
function updateOnCourt() {
var thearray = $('#sub-form').serialize();
$.ajax({
url: 'sub-update.php',
method: 'POST',
data: thearray,
success: function() {
alert('Success: '+thearray);
}
});
}
然后在我的 PHP 脚本中:
<?php
$size = count($_POST['thearray']);
$finally = json_decode($_POST['thearray'], true);
// start a loop in order to update each record
$i = 1;
while ($i < ($size+1)) {
// define each variable
$pid = $finally[$i];
$playing = $finally[$i];
$query = "UPDATE players SET
on_court = '{$playing}'
WHERE id = {$pid}";
mysql_query($query, $connection);
$i = $i + 1;
} ?>
我究竟做错了什么?