2011-10-15 106 views
8

我的if(isset($_POST['submit']))代碼有點問題。我想要的是當腳本打開時不會出現一些回聲和表格,但我確實希望它在單擊表單的提交按鈕時顯示。問題是,當我包含if(isset($_POST['submit']))函數時,當我點擊提交按鈕時,它根本不顯示回聲和表格。爲什麼是這個,請你幫我解決這個問題。

下面是代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 

<title>Exam Interface</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
</head> 
<body> 

<p><strong>NOTE: </strong>If a search box is left blank, then the form will search for all data under that specific field</p> 

<form action="exam_interface.php" method="post" name="sessionform">  <!-- This will post the form to its own page"--> 
<p>Session ID: <input type="text" name="sessionid" /></p>  <!-- Enter Session Id here--> 
<p>Module Number: <input type="text" name="moduleid" /></p>  <!-- Enter Module Id here--> 
<p>Teacher Username: <input type="text" name="teacherid" /></p>  <!-- Enter Teacher here--> 
<p>Student Username: <input type="text" name="studentid" /></p>  <!-- Enter User Id here--> 
<p>Grade: <input type="text" name="grade" /></p>  <!-- Enter Grade here--> 
<p>Order Results By: <select name="order"> 
<option value="ordersessionid">Session ID</option> 
<option value="ordermoduleid">Module Number</option> 
<option value="orderteacherid">Teacher Username</option> 
<option value="orderstudentid">Student Username</option> 
<option value="ordergrade">Grade</option> 
</select> 
<p><input type="submit" value="Submit" /></p> 
</form> 

<?php 

$username="xxx"; 
$password="xxx"; 
$database="mobile_app"; 

mysql_connect('localhost',$username,$password); 

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

$sessionid = isset ($_POST['sessionid']) ? $_POST['sessionid'] : ""; 
$moduleid = isset ($_POST['moduleid']) ? $_POST['moduleid'] : ""; 
$teacherid = isset ($_POST['teacherid']) ? $_POST['teacherid'] : ""; 
$studentid = isset ($_POST['studentid']) ? $_POST['studentid'] : ""; 
$grade = isset ($_POST['grade']) ? $_POST['grade'] : ""; 
$orderfield = isset ($_POST['order']) ? $_POST['order'] : ""; 

$sessionid = mysql_real_escape_string($sessionid); 
$moduleid = mysql_real_escape_string($moduleid); 
$teacherid = mysql_real_escape_string($teacherid); 
$studentid = mysql_real_escape_string($studentid); 
$grade = mysql_real_escape_string($grade); 

switch ($orderfield) { 
    case 'ordersessionid': $orderfield = 'gr.SessionId'; 
    break; 
    case 'ordermoduleid': $orderfield = 'm.ModuleId'; 
    break; 
    case 'orderteacherid': $orderfield = 's.TeacherId'; 
    break; 
    case 'orderstudentid': $orderfield = 'gr.StudentId'; 
    break; 
    case 'ordergrade': $orderfield = 'gr.Grade'; 
    break; 
} 

$ordertable = $orderfield; 

$result = mysql_query("SELECT * FROM Module m INNER JOIN Session s ON m.ModuleId = s.ModuleId JOIN Grade_Report gr ON s.SessionId = gr.SessionId JOIN Student st ON gr.StudentId = st.StudentId WHERE ('$sessionid' = '' OR gr.SessionId = '$sessionid') AND ('$moduleid' = '' OR m.ModuleId = '$moduleid') AND ('$teacherid' = '' OR s.TeacherId = '$teacherid') AND ('$studentid' = '' OR gr.StudentId = '$studentid') AND ('$grade' = '' OR gr.Grade = '$grade') ORDER BY $ordertable ASC"); 

$num=mysql_numrows($result); 

if(isset($_POST['submit'])){ 

echo "<p>Your Search: <strong>Session ID:</strong> "; if (empty($sessionid))echo "'All Sessions'"; else echo "'$sessionid'";echo ", <strong>Module ID:</strong> "; if (empty($moduleid))echo "'All Modules'"; else echo "'$moduleid'";echo ", <strong>Teacher Username:</strong> "; if (empty($teacherid))echo "'All Teachers'"; else echo "'$teacherid'";echo ", <strong>Student Username:</strong> "; if (empty($studentid))echo "'All Students'"; else echo "'$studentid'";echo ", <strong>Grade:</strong> "; if (empty($grade))echo "'All Grades'"; else echo "'$grade'"; "</p>"; 

echo "<p>Number of Records Shown in Result of the Search: <strong>$num</strong></p>"; 

echo "<table border='1'> 
<tr> 
<th>Student Id</th> 
<th>Forename</th> 
<th>Session Id</th> 
<th>Grade</th> 
<th>Mark</th> 
<th>Module</th> 
<th>Teacher</th> 
</tr>"; 

while ($row = mysql_fetch_array($result)){ 

echo "<tr>"; 
    echo "<td>" . $row['StudentId'] . "</td>"; 
    echo "<td>" . $row['Forename'] . "</td>"; 
    echo "<td>" . $row['SessionId'] . "</td>"; 
    echo "<td>" . $row['Grade'] . "</td>"; 
    echo "<td>" . $row['Mark'] . "</td>"; 
    echo "<td>" . $row['ModuleName'] . "</td>"; 
    echo "<td>" . $row['TeacherId'] . "</td>"; 
    echo "</tr>"; 
} 

echo "</table>"; 

} 

mysql_close(); 


?> 

</body> 
</html> 

任何幫助將非常感激,謝謝你。

回答

25

你需要給你的提交<input>名稱或使用$_POST['submit']也將不可用:

<p><input type="submit" value="Submit" name="submit" /></p> 
+0

相關答案好工作 – humphrey

+0

參數 '姓名' 從輸入,而不是 '值' 而不是 '類',例如<輸入名稱= 「TEST」> - > $ _POST [ 'TEST']; ...重要的'名字'...更容易=) – KingRider

+0

謝謝。你也幫助我。這是一個準確的問題..輸入應該有類型和名稱屬性,對吧? (至少) –

6

您從未將您的提交按鈕命名,因此就形式而言,它只是一個操作。

或者:

  1. 名稱提交按鈕(<input type="submit" name="submit" ... />
  2. 測試if (!empty($_POST))當數據已經發布,而不是檢測。

請記住,在$_POST鍵超全局唯一出現命名爲輸入元素。所以,除非元素具有name屬性,它不會通過來$_POST(或$_GET/$_REQUEST

8

你檢查

if(isset($_POST['submit'])) 

,但有沒有所謂的「提交」變量名是什麼。 好吧,我想讓你明白爲什麼它不起作用。 可以想象,如果你給你的提交按鈕名稱刪除 <input type="submit" value="Submit" name="delete" />和檢查if(isset($_POST['delete']))那麼它在這個代碼中的作品,你沒有給任何名稱提交按鈕,並檢查其存在與否isset();功能,所以PHP沒有找到任何變量像「提交」所以它不是現在的工作試試這個:

<input type="submit" name="submit" value="Submit" /> 
+0

救了我,我被卡住了 –

1

你必須提供一個名稱的提交按鈕

<input type="submit" value"Submit" name="login"> 

然後你就可以用$_POST['login']

調用按鈕10
1

$_post功能所需的名稱值 像:

<input type="submit" value"Submit" name="example"> 

呼叫

$var = strip_tags($_POST['example']); 
if (isset($var)){ 
    // your code here 
} 
1

哪些錯誤在這?

<form class="navbar-form navbar-right" method="post" action="login.php"> 
    <div class="form-group"> 
    <input type="email" name="email" class="form-control" placeholder="email"> 
    <input type="password" name="password" class="form-control" placeholder="password"> 
    </div> 
    <input type="submit" name="submit" value="submit" class="btn btn-success"> 
</form> 

登錄。PHP

if(isset($_POST['submit']) && !empty($_POST['submit'])) { 
    // if (!logged_in()) 
    echo 'asodj'; 
} 
相關問題