2014-01-25 128 views
0

由於我已經有下拉列表中的數據,我該如何反映它在數據庫中?數據庫應該顯示確切的管理員編號,學生,gpa和下拉列表中的一個選項。我需要使用if else語句嗎?如何從下拉列表中插入數據到數據庫

<form name="IT" action="getIT_now.php" method="post">  
     <?php 
      $result = mysqli_query($con,"SELECT admin_no, name, GPA, gender FROM student_details WHERE jobscope1= 'IT' ORDER BY `GPA` DESC; "); 

       $result2 = mysqli_query($con, "SELECT job_title FROM job_details WHERE jobscope='IT';"); 
       $row2 = mysqli_fetch_assoc($result2); 

       echo "<table border='1' > 
       <tr> 
       <th>Admin Number</th> 
       <th>Student Name</th> 
       <th>GPA</th> 
       <th>Gender</th> 
       <th>Company List</th> 
       </tr>"; 

       /*options sections start*/ 
       $options= ''; 
       while ($row2 = mysqli_fetch_array($result2)) 
       { 
        $options .='<option value="'. $row2['job_title'] .'"> '. $row2['job_title'] .'</option>'; 
       } 
       /*options sections end*/ 

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




         echo "<tr>"; 
         echo "<td bgColor=white>" . $row['admin_no'] . "</td>"; 
         echo "<td bgColor=white>" . $row['name'] . "</td>"; 
         echo "<td bgColor=white>" . $row['GPA'] . "</td>"; 
         echo "<td bgColor=white>" . $row['gender'] . "</td>"; 
         echo "<td><select name='ddl' onclick='if(this.value != '') { myform.submit(); }'>".$options."</select></td>"; 
        } 
         echo "</tr>";    

         echo "</table>"; 



    ?> 
    <input type="submit" name="submit" id="submit" value="Submit" /> 

    </form> 
+0

你做了什麼嘗試呢? – sunshinekitty

+1

你的意思是你需要在頁面上進行動態更改嗎?恐怕不能用PHP完成,你需要使用Javascript。 – Alexander

+0

@ 0n35我還沒有做任何事情,因爲我不知道如何將數據從下拉列表中插入到數據庫中。 – Angelica

回答

2

將表單動作更改爲當前文件的名稱。然後,在你的文件的頂部打開以下IF語句:

if ($_SERVER['REQUEST_METHOD']=='POST'){ 

在想一個變量分配給您的下拉值此IF語句(你需要用在<select>標記你的選擇,並且開口標記需要一個名稱屬性)並使用INSERT查詢將該變量寫入數據庫。您可以通過$_POST進行此操作,例如

$variable = $_POST['name_of_select']; 

然後你做你的INSERT:

$query = "INSERT INTO table (field) VALUES ($variable)";

(這是很普遍的,你應該看看準備語句作爲工作重點,因爲你永遠不應該相信任何用戶輸入,並準備了報表大大提高了安全性)。

接下來檢查INSERT是否成功等。然後你可以關閉你的IF語句並添加一個ELSE。在裏面你可以把你現有的代碼。

這樣做首先檢查頁面是否已被張貼。如果有,它將運行INSERT查詢。如果不是,則顯示錶單。

+0

我設法從數據庫中的下拉列表中獲取數據..謝謝.. – Angelica

+0

@Angelica沒有問題。如果這個答案有幫助,請接受它。 – ElendilTheTall

+0

令人驚歎的答案!爲我節省了很多時間!非常感謝!!! – kampfkuchen

0

例如,我有以下幾點:

<form action="phpfile.php" method="POST"> 
    <select name="color"> 
     <option value="volvo">Red</option> 
     <option value="saab">Blue</option> 
    </select> 
    <input type="submit" /> 
</form> 

這將是$ _ POST [「顏色」]引用,並會返回選定

那麼您可以運行的價值你插入查詢

$color = $_POST['color']; 
$sql_add = "INSERT INTO example (`color`) VALUES ('".$color."')"; 

請做好預防措施以消毒您的輸入。

+0

我以爲$ _GET從URL參數獲取變量,而不是HTML名稱屬性 – ElendilTheTall

+0

爲清晰起見進行了編輯,如果您使用GET方法提交表單,它將寫入URL,在這種情況下,您會想用POST,我的錯誤。 – sunshinekitty

+0

@ 0n35我是否需要將代碼放在getIT_now.php或當前頁面中? – Angelica

0

從我的理解你的問題是你試圖顯示錶中的學生的細節?

如果要使用$ _POST,請將表單動作更改爲當前頁面。

$value_of_select_box = $_POST['SELECT BOX NAME HERE']; 
    $result = mysqli_query($con,'SELECT admin_no, name, GPA, gender 
     FROM student_details 
       WHERE jobscope1= "'.$value_of_select_box.'" ORDER BY GPA DESC; '); 
相關問題