是否有一种方法来发送数据从不同的形式在同一时间,只有一个提交按钮


is there a way to send data from diffrent forms at the same time with only 1 submit button?

这是我的身体,我想从不同的形式在同一时间同一按钮提交超过1个数据是可能的在php?我想要第一个表单发送选定的第二个表单发送文本值…

<body>      
<div id="kategoriler">
<h4>Kategoriler</h4>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<select name="mydropdown">
<option value="Oteller">Oteller</option>
<option value="Restaurant">Restaurant</option>
<option value="Cafe">Cafe</option>
<option value="Bar">Bar</option>
<option value="Köy">Köy</option>
</select>
</form>
</div>
<div id ="text">
<h4>Başlik</h4>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="baslik" value="" maxlength="100" />
<h4>Açıklama</h4>
<textarea rows="30" cols="70">
 Buraya yazın...
</textarea>
</form>
</div>
<div id="bresim">
<h4>Başlik Resmi</h4>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"  enctype="multipart/form-data">
<label for="file">Resmi Seçin:</label>
<input name="uploaded" type="file" />
</form>
</div>
<div id="ekle">
<input type="submit" name="submit" value="Eklemek için tıklayın!" />
</div>
</body>

如果你正在使用jQuery…

首先,给你的表单和提交按钮一些id(我用#form1, #form2和#submit)。然后…

Edit:这是一个非ajax解决方案,它利用了表单发送到相同URL的事实。

当点击提交按钮时,将文本输入$(input[name=baslik])移动/追加到第二个表单中,然后提交。这个解决方案不需要jQuery表单插件,也不使用AJAX:

$("#form2").submit(function() {
    $(input[name=baslik]).appendTo($(this));
});

原始的AJAX解决方案:

如果你想要AJAX,你可以使用jQuery表单插件。

$(document).ready(function() { 
    $('#form1, #form2').ajaxForm(function() { 
        // optionally do stuff here after forms submitted
    });
    $('#submit').click(function() {
        $('#form1, #form2').ajaxSubmit();
        return false; 
    });
});

你不能使用jQuery的$(form).serialize(),因为它不能在文件字段上工作。此解决方案还假设您希望使用AJAX。

一种选择是强制使用javascript:启动一个javascript处理程序来收集值,提交ajax请求,甚至编写一个表单并提交它。

Jquery可以很容易地循环遍历所有表单值。

比如:

$("#first_form").submit(function() {
    //collect all values here
    first_form_data = $("#first_form").serialize();
    second_form_data = $("#second_form").serialize();
    $.ajax({
         url: ..,
         data: first_form_data + "&" + second_form_data,
         success: function(data) {
         }
    }
    //let’s not submit the form
    return false;
}

可以。

删除提交的输入,并在每个表单外添加一个链接。(也给每个表单添加一个ID,这样你就可以通过这个javascript调用它们)

function submitAll(){
   document.forms["IDform1"].submit();
   document.forms["IDform2"].submit();
}

编辑:这不起作用,唯一的方法是通过AJAX,请检查@Phil的答案!