在處理表格服務器端,我們需要確保HTML形式有其方法和操作設置如下所示:php - 頁面中的每個html表單都需要不同的php文件嗎?
<form action="filename.php" method="post">
....
</form>
我明白,我們可以使用jQuery/javascript來處理表單提交不同(如執行函數在多個.php文件中),但這是否意味着如果我在頁面上有3個表單 - 比如聯繫表單,訂閱表單和用戶查找/搜索表單 - 那麼我需要每個3個.php文件?
在處理表格服務器端,我們需要確保HTML形式有其方法和操作設置如下所示:php - 頁面中的每個html表單都需要不同的php文件嗎?
<form action="filename.php" method="post">
....
</form>
我明白,我們可以使用jQuery/javascript來處理表單提交不同(如執行函數在多個.php文件中),但這是否意味着如果我在頁面上有3個表單 - 比如聯繫表單,訂閱表單和用戶查找/搜索表單 - 那麼我需要每個3個.php文件?
你其實並不需要多個文件,你可以做類似下面:
<form name="form1" action="filename.php" method="post">
....
<input type="submit" name="form1-submit" value="form1" />
</form>
<form name="form2" action="filename.php" method="post">
....
<input type="submit" name="form2-submit" value="form2" />
</form>
<form name="form3" action="filename.php" method="post">
....
<input type="submit" name="form3-submit" value="form3" />
</form>
filename.php
<?php
if (!empty($_POST['form1-submit'])) {
//do something here;
}
if (!empty($_POST['form2-submit'])) {
//do something here;
}
if (!empty($_POST['form3-submit'])) {
//do something here;
}
?>
很好解釋!我不知道我們可以通過隱藏的輸入過濾[type =「submit」]。這絕對是一種將相關函數編譯成一個php文件而不是爲每個php文件創建一個更有效的方法。謝謝!我剛開始學習php表單處理,這非常有用! –
by * input [type =「submit」] –
在頁面中有多個表單可以。
每個你可以提交相同的目標腳本,並通過HTTP方法區分:
<form action="filename.php" method="post">
</form>
<form action="filename.php" method="get">
</form>
你可以發佈到不同的目標:
<form action="foo.php" method="post">
</form>
<form action="bar.php" method="get">
</form>
<form action="baz.php" method="post">
</form>
你可以使用一個隱藏的價值,並在服務器腳本使用該格式來區分:
<form method="POST">
<input type="hidden" name="form" value="foo">
<input type="submit" name="submit" value="Go">
</form>
<form method="POST">
<input type="hidden" name="form" value="bar">
<input type="submit" name="submit" value="Go">
</form>
示例過程唱歌:
if($_SERVER['REQUEST_METHOD'] === 'POST') {
$form = isset($_POST['form'])
? $_POST['form']
: null;
switch($form) {
case 'foo':
process_form_foo($_POST);
break;
case 'bar':
process_form_bar($_POST);
break;
default:
throw new Exception('Invalid form submission.');
}
}
我會小心地將所有這些集中在一起。如果你這樣做,注意分解成可管理的部分。
感謝@Progrock,我應該更具體一點,我關心使用POST方法的表單。不同的http方法雖然是一個很好的建議,但是我還需要一些關於php文件如何以正確的形式執行正確函數的指導。非常感謝! –
不同的http方法,只是一個頁面上有多個表單的例子。我爲多個表單處理添加了一個簡單的輪廓。 – Progrock
這取決於你,但會更好讓每個文件處理每個表格以提高可讀性,以免別人可以在網站上工作 –
不,沒有這樣的要求。你能描述一下你正在嘗試解決的問題,還是你面對的代碼問題? –
您可以傳遞參數並在服務器端檢查 –