一种可以解决在PHP端分离数据的问题的方法是将名称数组添加到输入中。例如:
<form name="form1" method="post">
<input type="text" name="test[1]" />
<input type="text" name="test[2]" />
<input type="submit" value="Submit" />
</form>
然后提交到一个PHP页面后,您可以通过访问它们:
if($_SERVER['REQUEST_METHOD'] == 'POST'){
echo $_POST['test'][1] . $_POST['test2'][2];
}
如果你绝对必须有独立的形式标记一些未知的原因,那么你也可以做这使用AJAX。向你的提交按钮添加一个类,然后使用vanilla JavaScript和/或jQuery将一个单击事件绑定到该事件,取消常规表单操作并发布到独立的php页面。 AJAX将返回你回写。这里是JavaScript的例子:
jQuery('.submit-button').click(function() {
//Find all input fields in the form and store them
var fields = jQuery(this).parent().find(':input').serializeArray(),
url = '/somepage/somepath/',
returnJSON,
ajaxRequestHandler;
//Stop the form from submitting
event.preventDefault();
//Start AJAX request
ajaxRequestHandler = jQuery.ajax({
type: "POST",
url: url,
data: fields
});
//Error Hanlder
ajaxRequestHandler.fail(function (returnData) {
console.log('failure');
});
//Success Handler
ajaxRequestHandler.done(function (returnData) {
//Display a message to the html page.
});
});
下面是HTML:
<form name="form1" method="post">
<input type="text" name="test1" class="submit-button" />
</form>
<form name="form1" method="post">
<input type="text" name="test2" />
<input type="submit" value="Submit" class="submit-button" />
</form>
你那么如果你使用MVC需要设置一个独立的PHP页面或新方法,在你的控制器。你还需要确保这个PHP页面是安全的。
不同形式背后的目的是什么? – Nick 2014-12-02 16:54:56
为什么当你不使用“提交”其中之一时,你需要两种形式。您是否无法将所有输入内容包含在单个表单中并使用提交? – 2014-12-02 16:55:29
如果你真的想这样做,你应该使用JavaScript/AJAX。 – 2014-12-02 16:56:46