JQUERY Populate"选择"选项根据另一个选择元素

时间:2015-05-19 19:29:42

标签: javascript php jquery mysql autocomplete

我想根据我在另一个选择元素(下拉框)中选择的内容更改select元素中的选项。

我的PHP页面上有两个选择框(RUNS和SAMPLES)。我打算做的是根据使用第一个选择框中选择的选项对数据库执行的查询来更改第二个选择框中的选项。

我的数据库中有一个连接" SAMPLES"到" RUNS"。第一个选择框由一组' RUNS'填充。在页面加载。我想要的样本'属于选定的RUN以填充在SAMPLES框中。

HTML就像是

<select name='run_id' id='run_id>
    <option value='1'>RUN 1</option>
    <option value='2'>RUN 2</option>
    <option value='4'>RUN 3</option>
    <option value='5'>RUN 4</option>
</select>

后端表&#34; sample_runs&#34;有列run_id和sample_name。我有一个PHP脚本,如下所示,

<?php
mysql_connect("localhost","uname","pwwd");
mysql_select_db("dbname");
$run_id = $_GET['run_id'];
$sql = "select distinct sample_name from samples where run_id = '$run_id'";
$rsd = mysql_query($sql);
while($rs = mysql_fetch_array($rsd)){
    echo '<option value='.$rs['sample_name'],'>'.$rs['sample_name']."</option>";
}
?>

我可以修改PHP脚本(简单部分),但有人可以与我分享一些代码,了解如何根据在RUNS框中选择的run_id填充样本名称选项。

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

如果您的数据集足够小,您可以在页面加载时发送所有数据。通过在PHP中构建表示整个数据集的JSON对象来完成此操作。您可以使用PHP的json_encode函数执行此操作:http://php.net/manual/en/function.json-encode.php

一旦您构建了JSON字符串,您就需要将其发送到某些JavaScript,以根据所选的run_id处理样本名称选项的填充。这里有一个很好的讨论:How to pass variables and data from PHP to JavaScript?

最后,您需要编写JavaScript来执行更改第二个HTML选择框内容所需的DOM操作。这是一个例子:Adding options to select with javascript

如果您的数据集太大而无法在单个请求中发送,那么您需要构建一个REST API,以便在选择时为每次运行提供数据。

祝你好运!!