2014-02-17 30 views
2

這可能是一個愚蠢的問題,但我是新來的(這是一個家庭作業^^),我找不到解決方案:) 我有一個帶有html格式的.php文件加上一些php代碼來執行一個查詢並在表單中插入我的數據庫中的值。它可以工作,但每次頁面加載時,php代碼都會被執行,並且在DB中插入一個「空白」行,因爲顯然表單尚未填充。這是代碼PHP頁面與HTML表單內部執行PHP代碼之前形式完成

<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="generator" content="AlterVista - Editor HTML"/> 
    <title></title> 
</head> 
<body> 

<form action="myPage.php" method="post"> 
ID: <input type="text" name="id" /> <br /> 

<input type="submit" name="Submit" value="Go" /> <br /> 
</form> 

<?php 
$user = "DB"; 
$password = ""; 
$host = ""; 
$database = "my_DB"; 
$connessione = mysql_connect($host, $user, $password); 

@mysql_select_db($database, $connessione) or die("Unable to select database"); 

$id = $_REQUEST['id']; 
$query = "INSERT INTO myTable (ID) VALUES ('".$id."')"; 
mysql_close(); 
?> 

</body> 
</html> 

有沒有一種方法來執行PHP代碼只有執行窗體上的「Go」按鈕?

+0

:PHP工作_before_頁面之中呈現 –

+0

是啊我假設xD,但有一種方法來執行一段PHP代碼只是「事後」發生? (如表單完成) – r4id4

+0

檢查是否設置了$ _POST ['Submit'],例如 –

回答

0

嘗試:

if(isset($_POST['Submit'])) { 
    $user = "DB"; 
    $password = ""; 
    $host = ""; 
    $database = "my_DB"; 
    $connessione = mysql_connect($host, $user, $password); 

    @mysql_select_db($database, $connessione) or die("Unable to select database"); 

    $id = $_REQUEST['id']; 
    $query = "INSERT INTO myTable (ID) VALUES ('".$id."')"; 
    mysql_query($query, $connessione); 
    mysql_close(); 
} 
+0

嘗試過,但從未執行的代碼,即使提交按鈕被按下!我應該改變其他代碼? – r4id4

+0

編輯:現在它工作我寫了「提交」,而不是「提交」 – r4id4

0

PHP將在頁面呈現前工作。你需要設置一個條件來停止你不想運行的PHP,直到你提交表單。

if(isset($_POST['myform'])) { 
    // process the form 
}else{ 
    // html for form goes here 
} 

希望有幫助。

0

假設的形式指向腳本本身,還有許​​多選項:)其中包括:

如果形式發佈第一個例子只檢查。如果接收到正常(GET)的請求,它會做什麼,因爲如果一個名爲「提交」一個變量已經公佈它不會落入你如果從句

// your form here 
if($_SERVER['REQUEST_METHOD'] == 'POST') { 
    // your php code 
} 

而這個例子檢查,如果是這樣,如果它的值爲'Go'。這是一個稍微更嚴格的檢查,但在當前的例子的行爲是完全一樣的(所以你幾乎可以選擇哪一個你最喜歡的;)這正是是應該發生的)

// your form here 
if(array_key_exists('Submit', $_POST) && $_POST['Submit'] == 'Go') { 
    // your php code 
} 
+0

我已經嘗試了兩個。第一個仍然執行,第二個執行,第二個永遠不會執行;(我在<?php if(.. and closed here)>之後粘貼它 – r4id4