一種可以解決在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