从MySql通过PHP填充下拉菜单

时间:2011-08-03 14:59:36

标签: mysql html drop-down-menu

我想知道是否有人可以帮助我。

我有一个包含多个表的MySql数据库。我的问题围绕使用其中三个数据,“用户详细信息”,“探测器”和“搜索头”。

我想要做的是在我的HTML表单上填充一个下拉菜单,其中显示了特定于用户的“检测器”,反过来,另一个下拉菜单又是用户特定的,但也只显示了' “搜索头”适用于第一个下拉菜单中的“检测器”选择。

所有三个表都有一个'userid'字段,'探测器'和'搜索头'的表有一个'detectorid'字段。

或许有人可以告诉我如何设置它,因为我必须承认我不知道从哪里开始。

非常感谢和问候

克里斯。

更新的JS代码

<script type="text/javascript" language="javascript">
            $(document).ready(function(){     
            $.fetch_data    = function (what) {         
            var send    = {             
            "what"  : what,             
            "data"  : $("select[name=detectors]").val()         
            };         
            $.post ("dropdownmenus.php", send, function(data){             
            $("select[name=" + what + "]").html(data);         
            });     
            };     
            $.fetch_data ("detectors");     
            $("select[name=detectors]").live("change", function(){         
            // reset the searchhead as new data will be implemented         
            $("select[name=detectorsearchheads]").html("");         
            $.fetch_data ("detectorsearchhead");     
            }); 
            }); 
        </script> 

更新的PHP代码

<?php     
$request    = array (        
"detector"      => @$_POST["detector"],         
"detector"      => @$_POST["detector"]     );     
// clean $request.     
$build_query    = "select * from " . $request["what"] . " "                     
. "where userid = \"" . $user_id . "\"";    
$build_results  = mysql_query ($build_query);     
$return_results = "";     
foreach ($build_results as $index => $data) {         
$return_results .= "<option value=\"detector" . $data["id"] . "\">" . $data["text"] . 
"</option>";     }     
echo $return_results; ?>

1 个答案:

答案 0 :(得分:1)

这比复杂的MySQL查询更多Javascript。

<强> form.php的

此页面位于表单所在的位置。我创建了一个抓取必要数据的Ajax函数。我还没有完成所有事情,但我给了你一个你需要完成的内容的概述。从select输入收集的数据通过jQuery中的ajax post请求传输。然后操纵数据并将其格式化为html数据,select输入可以理解这些数据。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script>
$(document).ready(function(){
    $.fetch_data    = function (what) {
        var send    = {
            "what"  : what,
            "data"  : $("select[name=detectors]").val()
        };
        $.post ("url/to/ajax.php", send, functio(data){
            $("select[name=" + what + "]").html(data);
        });
    };
    $.fetch_data ("detectors");
    $("select[name=detectors]").live("change", function(){
        // reset the searchhead as new data will be implemented
        $("select[name=searchhead]").html("");
        $.fetch_data ("searchhead");
    });
});
</script>
<form>
    <label>Detectors</label>
    <select name="detectors">

    </select>
    <label>Search Heads</label>
    <select name="searchead">

    </select>
</form>

<强> URL /到/ ajax.php

在这里,您必须调整数据的操作方式。您可以使用PHP switch,具体取决于what变量,这将根据请求更改查询。

<?php
    $request        = array (
        "what"      => @$_POST["what"],
        "data"      => @$_POST["data"]
    );
    // clean $request.
    $build_query    = "select * from " . $request["what"] . " "
                    . "where userid = \"" . $user_id . "\"";
    $build_results  = mysql_query ($build_query);
    $return_results = "";
    foreach ($build_results as $index => $data) {
        $reurn_results .= "<option value=\"" . $data["id"] . "\">" . $data["text"] . "</option>";
    }
    echo $return_results;
?>