2013-03-13 126 views
0

我创建了一个脚本,用第一个组合框的值填充第二个组合框。但这并不完全是我想要做的。我想用基于在第一个组合框中选择的项目的SQL查询的结果来填充第二个组合框。php&js动态创建自动填充的下拉列表

这里是我的javascript:

<script type="text/javascript"> 
    function selectDropdown(){ 
     var dropdownValue=document.getElementById("dropdown").value; 
     $('option[value=st]').text(dropdownValue); 
    } 
</script> 

第一组合框:

<select id="dropdown" name="dropdown" onchange="selectDropdown()"> 
    <option value="dd">--take an option--</option> 
    <? 
    $standard = Env::value('standard'); 
    if (!$status) 
     $statement = "select code from standard"; 
    foreach ($db->query($statement)->fetchall() as $row) 
     echo "<option".($row == $standard ? ' selected ' : '').">$row[0]</option>"; 
    ?> 
</select> 

,并在其中我想显示查询结果的第二个:$q= select request.code from request inner join standard on (request.standard_id=standard.id) where standard.code=$st

<select name='st' class='txt'> 
    <option value="st"><? echo $st; ?></option> 
</select> 

任何人都可以给我一个提示,我应该把查询执行?或者只是指出我在做什么错了?

+0

为什么使用纯JS来获得下拉的值,然后使用jQuery来获取选项的文本值? – kidonchu 2013-03-13 11:58:51

+0

缺乏经验和知识:(你能否提供关于我应该学习的东西的正确文章或教程? – Mithrand1r 2013-03-13 12:00:40

+0

如果你想运行一个查询,那么你必须使用需要ajax调用的服务器端代码。相似。http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/ – karmafunk 2013-03-13 12:01:53

回答

0

使用jQuery的ajax调用在每次第一次下拉选择被更改时向服务器发出请求。在服务器端创建一个脚本,它将接收该请求并返回JSON格式的第二个下拉列表的相应记录,然后可以通过javascript轻松处理。对于使用AJAX看到此链接:http://api.jquery.com/jQuery.ajax/

它会像:

jQuery.ajax({ 
    method: "POST", 
    url: "http://domain.com/path/to/script.php", 
    data: value_of_selected_item_from_first_dropdown, 
    success: function(response) { 
     // Set 2nd dropdown values to those received via response 
    } 
    dataType: "json", 
});