Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 提交多个HTML表单+;使用AJAX.on(单击)方法的其他变量数据_Php_Javascript_Ajax_Forms_Submit - Fatal编程技术网

Php 提交多个HTML表单+;使用AJAX.on(单击)方法的其他变量数据

Php 提交多个HTML表单+;使用AJAX.on(单击)方法的其他变量数据,php,javascript,ajax,forms,submit,Php,Javascript,Ajax,Forms,Submit,我想这真的是我上一个题为“”的问题的延续,这个问题让我从一些非常基本的AJAX开始。你真的必须阅读这个问题才能彻底理解这个问题。现在这个问题的关键是其他变量数据 因此,我有一个使用jQuery运行的基本AJAX submit脚本,它与我上一个问题的答案是重复的(减去从“button”到“input#publishimages”的更改),它可以很好地迭代多个表单并提交所有表单: function post_form_data(data) { $.ajax({ type: '

我想这真的是我上一个题为“”的问题的延续,这个问题让我从一些非常基本的AJAX开始。你真的必须阅读这个问题才能彻底理解这个问题。现在这个问题的关键是其他变量数据

因此,我有一个使用jQuery运行的基本AJAX submit脚本,它与我上一个问题的答案是重复的(减去从“button”到“input#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());
    });
});
正在提交的表单(每个表单相当于一个图像,因此需要多次迭代才能提交每个图像-请参阅更多信息是我的上一个问题)也在上一个问题中,看起来与此类似:


您可以保留所有内容的输入。对于那些在EXIF中有现有数据的用户,只需填写它并用CSS对用户隐藏输入。这样,您就可以以更通用的方式处理表单,您的问题也就解决了。

您是在“双重提交”。在AJAX函数中,拦截单击并阻止默认值:

$('input#publishimages').on('click', function (e) {
    e.preventDefault();
    $('form').each(function () {
        post_form_data($(this).serialize());
    });
});
这将阻止表单提交。提交的表单只不过是一个POST或GET请求

除此之外,我对你想要实现的目标感到困惑。听起来数据不完整是因为验证步骤?用户提交表单,抓取一些EXIF数据,并返回新的输入和丢失的数据,但是EXIF数据已经溶解在一团零和一中,对吗?如果是这种情况,您可以使用隐藏的表单字段:

if (I find EXIF Location Data) {

    $_POST['image'][$i]['location'] = $location;
    echo '<input type="hidden" value="$foo" name="$bar" />;

} else {

    <label>Location</label>
    <input name="image[<?php echo $i; ?>][Location]" />

}
if(我找到EXIF位置数据){
$\u POST['image'][$i]['location']=$location;
回声';
}否则{
位置

听起来你最好制作一个巨大的表单,然后在PHP端处理它,提交多个表单可能会有点棘手。我真的不能这么做,因为上传的图像数量(决定创建了多少表单)是不确定的,而且我使用Javascript使每个图像成为表单的“选项卡”(单击一个图像,该图像特定的表单出现,单击另一个,先前的表单消失,新表单出现)。无论如何,问题不在于提交多个表单,而是试图让AJAX处理我想提交的所有数据。
$('input#publishimages').on('click', function (e) {
    e.preventDefault();
    $('form').each(function () {
        post_form_data($(this).serialize());
    });
});
if (I find EXIF Location Data) {

    $_POST['image'][$i]['location'] = $location;
    echo '<input type="hidden" value="$foo" name="$bar" />;

} else {

    <label>Location</label>
    <input name="image[<?php echo $i; ?>][Location]" />

}