我想这真的是我最后一个题为“通过 AJAX 使用单个提交按钮提交多个 HTML 表单”的问题的延续,它让我开始使用一些非常基本的 AJAX。你真的必须阅读这个问题才能彻底理解这个问题。现在这个问题的关键是其他可变数据......
因此,我有一个使用 jQuery 运行的基本 AJAX 提交脚本,它与我上一个问题的答案重复(减去从“按钮”到“输入#publishimages”的更改),它在迭代多个表单和提交时效果很好商场:
function post_form_data(data) {
$.ajax({
type: 'POST',
url: 'verify.php',
data: data,
success: function () {},
error: function () {}
});
}
$('input#publishimages').on('click', function () {
$('form').each(function () {
post_form_data($(this).serialize());
});
});
正在提交的表单(每个表单等于一个图像,因此根据需要迭代多次以提交每个图像 - 查看更多是我的上一个问题)也在上一个问题中,看起来类似于:
<form id="image<?php echo $i; ?>">
<label>Name</label>
<input name="image[<?php echo $i; ?>][Name]" />
<label>Location</label>
<input name="image[<?php echo $i; ?>][Location]" />
<!-- etc, etc, for description, coordinates, camera etc -->
</form>
回想起来,遗憾的是,这有点太淡化了。这就是另一个可变数据位发挥作用的地方。我现在正在检查每个图像的 EXIF 数据以获取更多信息,如果我发现必须由用户在表单上填写的数据,则从表单中删除输入,如果没有,则显示输入以便用户填写自己出去。所以带有表单的 PHP 脚本看起来更像这样(伪代码):
<form id="image<?php echo $i; ?>">
<label>Name</label>
<input name="image[<?php echo $i; ?>][Name]" />
// Examine EXIF Data
if (I find EXIF Location Data) {
$_POST['image'][$i]['location'] = $location;
} else {
<label>Location</label>
<input name="image[<?php echo $i; ?>][Location]" />
}
// etc, etc, similar situation occurs with camera make + model, date taken etc.
</form>
所以你可以看到我正在做的是在我找到/没有找到信息时有选择地动态删除和添加输入到表单中。如果我找到它,请将信息提交给$_POST
超全局,否则只需在表单中回显一个输入供用户填写。有什么问题?Javascript。
这是一个问题,因为...
现在,当我引用$(this)
(当然是$('form')
指t 存在 - 相反,我已将它们分配给$_POST
超全局,并且我的 jquery 脚本无法访问它们。
所以...
我需要一种能够通过 AJAX 将与图像有关的所有内容提交到我的目的地的方法,无论它是作为表单的一部分发布还是提交。我完全不知道如何实现这一目标......有什么建议吗?