2013-02-09 34 views
1

我是新的與PHP和想要問這個代碼..我有一個下拉菜單和一個按鈕.. 我想在SQL數據庫中搜索我選擇什麼那些下拉菜單.. 什麼是使用下拉菜單在sql數據庫搜索項目的SQL語法.. 默認情況下,我寫 - >SELECT * FROM helpline在下拉菜單中使用值來搜索sql數據庫

它應該是 - >SELECT * FROM helpline WHERE MISC = %**item in drop down menu**%

這是我的數據庫=服務檯

Table = helpline 

NAME | DATE | MISC | 
John | 02/01/2011 | Item 1 | 
Mark | 03/01/2011 | Item 2 | 

這是我的代碼

<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" > 
<label for="namelist"></label> 
<select name="namelist" id="namelist"> 
<option selected="selected" disabled="disabled">PLEASE CHOOSE ONE ITEM:-</option> 
<option>Item 1</option> 
<option>Item 2</option> 
</select> 
<input type="submit" name="show" id="show" value="Submit" /> 
<?php 
mysql_select_db("helpdesk",mysql_connect("localhost","root",""))or die (mysql_error()); 
$query = "SELECT * FROM helpline"; */ This line should select what I choose in drop down menu /* 
$result = mysql_query($query); 
while ($row = mysql_fetch_array($result)){ 
?> 
<table border="0" cellpadding="6" cellspacing="6" class="curve"> 
<thead> 
<tr> 
<th> <div align="right"><span class="font">NAME</span></div></th> 
<th> <div align="right"><span class="font">DATE</span></div></th> 
</tr> 
</thead> 
<tbody> 
<tr> 
<th><div align="left"><span class="font"><?php echo $row['name']; ?></span></div></th> 
<td><div align="left"><span class="font"><?php echo $row['date']; ?></strong></span></div></td> 
</tr> 
</tbody> 
&nbsp; 
<?php 
} 
?> 
</table> 
</form> 

因此,應根據我在下拉菜單中選擇當我點擊顯示在SQL數據庫中的所有項目按鈕..

+1

請後。停止。使用。 'mysql_'。功能。 – Kermit 2013-02-09 05:48:46

+0

我猜你想要加載沒有頁面重新加載的數據,認爲合適的方法是使用ajax,我會推薦使用框架,單獨導致ajax對於陌生的眼睛可能會很棘手。一個好的開始將使用jQuery – Breezer 2013-02-09 05:56:35

回答

1

您可以通過php $_POST[]關聯數組訪問您的發佈表單數據,如PHP's Online Manual中所述。從這裏你可以選擇namelist並將值傳遞給你的SQL。


$query = "SELECT * FROM helpline"; 
if(isset($_POST['namelist'])){ 
    $dropdown_val = $_POST['namelist']; 
    $query .= " WHERE MISC = '$dropdown_val'"; 
} 

但你確實應該使用AJAX,這和jQuery將是一個偉大的JavaScript框架,幫助你做到這一點。另外,mysql_ *函數自PHP 5.5.0起棄用,並且將來會被刪除。相反,應該使用MySQLi或PDO_MySQL擴展。

+0

它似乎是一個錯誤 - 未定義'namelist' – Alieym 2013-02-09 06:10:53

1

沒有刷新頁面,您可以像下面這樣做

<script> 
    $(document).ready(function(){ 
     $("#namelist").change(function(){ 
      var data = $(this).val(); 
      $.ajax({ 
       type:'POST', 
       data:'search_value='+data, 
       url:'search_process.php', 
       success:function(data){ 
        $("#result").html(data); 
       }    
      });   
     }); 

    }); 


</script> 

HTML部分

<select name="namelist" id="namelist"> 
<option selected="selected" disabled="disabled">PLEASE CHOOSE ONE ITEM:-</option> 
<option>Item 1</option> 
<option>Item 2</option> 
</select> 
<input type="button" name="show" id="show" value="Submit" /> 

<div id="result"></div> 

的search_process.php頁

<?php 

// DATABASE CONNECTIVITY 

if(isset($_POST['search_value'])) { 
    $val = $_POST['search_value']; 


    $query = mysql_query("SELECT * FROM helpline WHERE MISC LIKE %$val%"); 

    // NOW RUN YOUR QUERY 

    $result = '<table border="0" cellpadding="6" cellspacing="6" class="curve">'; 
    $result .= '<thead>'; 
    $result .= '<tr>'; 
    $result .= '<th> <div align="right"><span class="font">NAME</span></div></th>'; 
    $result .= '<th> <div align="right"><span class="font">DATE</span></div></th>'; 
    $result .= '</tr>'; 
    $result .= '</thead>'; 
while($row = mysql_fetch_array($query)){ 

    $result .= '<tr>'; 
    $result .= '<th><div align="left"><span class="font">'.$row['name'].'</span></div></th>'; 
    $result .= '<td><div align="left"><span class="font">'.$row['date'].'</strong></span></div></td>'; 
    $result .= '</tr>'; 

} 
    $result .= '</table>'; 
    echo $result; 
} 
?> 

希望這給一個想法

1

你的選擇選項沒有價值屬性

your dropdown 
<select name="namelist" id="namelist"> 
<option selected="selected" disabled="disabled">PLEASE CHOOSE ONE ITEM:-</option> 
<option>Item 1</option> 
<option>Item 2</option> 
</select> 

change it : 
<select name="namelist" id="namelist"> 
<option selected="selected" disabled="disabled" value="">PLEASE CHOOSE ONE ITEM:-</option> 
<option value="Item 1">Item 1</option> 
<option value="Item 2">Item 2</option> 
</select> 

提交從$ _ POST GET值「名稱列表」]

相關問題