2017-02-25 47 views
1

在同一个相同的条款,我怎么能发送从第一个选项框中的值的SQL中选择选项的值,然后使用该值的第二选项框查询的WHERE子句中?使用为另一选择

I.e.我选择一个客户端,然后第二个选择框将只显示与该客户端相关的选项。

理想情况下是一个单页的作品流体

Client Selection: 
<?php    //OPEN DROP DOWN BOX 
include("../login/dbinfo.inc.php"); 
[email protected]_connect(localhost,$username,$password); 
[email protected]_select_db($database) or die("Unable to select database"); 
$sql= "SELECT DISTINCT ClientCode, ClientName FROM tbl_client ORDER BY ClientCode"; 
$result = mysql_query($sql); 
echo "<select name='ClientCode'>"; 
while ($row = mysql_fetch_array($result)) { 
echo "<option value='" . $row['ClientCode'] ."'>" . $row['ClientName'] ."</option>; 
} 
echo "</select><br>"; //CLOSE DROP DOWN BOX 

?><br> 

Vessel Selection: 
<?php    //OPEN DROP DOWN BOX 
$client = $_GET["$client"];//assign client code from first drop down to this value & use in query 'WHERE' clause 

include("../login/dbinfo.inc.php"); 
[email protected]_connect(localhost,$username,$password); 
[email protected]_select_db($database) or die("Unable to select database"); 
$sql= "SELECT VesselName FROM tbl_import WHERE ClientCode='".$client."' ORDER BY VesselName"; 
$result = mysql_query($sql); 
echo "<select name='VesselName'>"; 
while ($row = mysql_fetch_array($result)) { 
echo "<option value='" . $row['VesselName'] ."'>" . $row['VesselName'] ."</option>"; 
} 
echo "</select><br>"; //CLOSE DROP DOWN BOX         
?> 

回答

3

PHP是一个服务器端语言 - 它是由浏览器接收之前所有查询的执行。如果您希望菜单内容根据您的首选项(客户端)进行更改,您需要在选择客户端后提交表单,或者在收到第一个菜单后使用javascript填充第二个菜单一个选择。

第二个音符 - 你正在使用mysql功能 - 那些已经在PHP5被弃用,在PHP7删除;至少考虑更新代码以使用mysqli函数。

第三个音符 - 你将用户数据直接进入你的查询,这意味着你的打开你的网站SQL注入。您可以通过使用准备好的语句和通过mysqli或(更好的是)pdo函数的绑定参数来访问数据库。

+0

嗨卢卡斯,感谢的是,注意到上述情况。我还没有尝试过,但有可能做一个表单,每个字段,自动执行选择,位置#,然后从prev获得价值?只要你知道,否则生病就得试试它 – sanitizer

+0

是的,你可以设置每个领域的形式。你可以使用JavaScript自动提交第一个表单当选择一个值('的onChange =“this.form.submit()”'加入到''