這是我的超級簡化的index.php:PHP和形成問題
<?php
require_once 'DeleteOrAdd.php'; // handles adding/deleting a db record
doAddDeleteRecord();
// other functions are called here, left out though for brevity
?>
這裏的DeleteOrAdd.php(大大簡化)
<?php
function doAddDeleteRecord()
{
echo <<<_END
<form action="index.php" method="post">
// the other form html not shown here
<input type="submit" value="ADD RECORD" />
</form>
_END;
// NOT SHOWN -- code to handle the form when it is POST'd
}
?>
所以它的晚10時30分,我是新到PHP,好吧/藉口。 無法弄清楚如何做到這一點。
我想改變我的form action="index.php"
以上form action="DeleteOrAdd.php"
(即我要重新發布到同一個文件,這種形式是, 不到index.php,所以代碼更乾淨)。 ,但它不會工作,因爲我有doAddDeleteRecord()
函數中的POST - 的所有表單處理邏輯,所以如果我設置我的表格action="DeleteOrAdd.php"
它將不起作用。
是否有可能做類似form action="DeleteOrAdd.php:doAddDeleteRecord()
?
我不想把它放在課堂上。 我也想保持我的index.php正如上面 - 調用函數,並沒有主要的 以上的內聯代碼。
任何想法?
最初,所有的代碼是在線內的index.php (從PHP書的樣品得到了它),然後我分了代碼到NetBeans項目 邏輯命名PHP文件把它清理乾淨,並把在從index.php調用的函數中的東西。
但不會得到處理表單處理的函數調用 - 表單處理代碼在函數doAddDeleteRecord()中 - 這就是問題所在。我知道如何重新發布到同一個文件 - 它只是處理POST'd表單的代碼在一個函數內,如果我只是將表單發佈到文件中,該函數將不會被調用。 – wantTheBest 2011-06-10 05:52:38
你不能直接發佈到一個函數。如Shakti Singh所示,您必須對錶單數據做出反應。 – Rufinus 2011-06-10 05:57:45
恩,所以你推薦他使用無效標記?它回帖的唯一原因是因爲瀏覽器識別出無效標記並進行補償。 action屬性是REQUIRED,因此他的標記不會在未使用的情況下進行驗證。這是我見過的最差的答案,不知道爲什麼有人投票贊成。 – 2011-06-10 06:22:15