我在使用我的代码时遇到了一些问题,这是它的简化版本:
<form name="form1" method="post">
<input type="text" name="test1" />
</form>
asd
<form name="form1" method="post">
<input type="text" name="test2" />
<input type="submit" value="Submit" />
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
echo $_POST['test1'] . $_POST['test2'];
}
?>
我希望这能说清楚我要做的事情。
感谢您的帮助。
答案 0 :(得分:4)
解决在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将click事件绑定到此,取消正常的表单操作,然后发布到独立的php页面。 AJAX将返回w / e你回写。以下是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页面是安全的。