2013-02-09 33 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值“名称列表”]

相关问题