如何更改单击组合框时的值

时间:2014-07-04 08:15:13

标签: php ajax

嗨,大家好,我有一个新手问题.. 我有一个具有默认值的组合框。 当我点击组合框。显示数据库中的所有数据...... 我还没有任何代码 给我一些例子

提前谢谢..

1 个答案:

答案 0 :(得分:0)

为了解释我的答案,我将使用一个演示数据库,从数据库中选择一些ID和名称的任意值。 这里的代码应该足以让你入门,但我建议如下:

  • Google首先......要做这种事情,你需要了解你的javascript和PHP。虽然它只是这里的基础知识,但它是最重要的基础知识。
  • 当你提出问题时更具体......你的问题非常模糊。

尽管如此,我来这里是为了帮助,所以这里有一些基本的代码,有一个很好的解释: 首先,您需要在HTML中更改元素。为此,我使用了#mydropdown#displayArea将用于显示数据。

然后,在Javascript中(记得包含jQuery)你将使用jQuery的ajax函数(如果你愿意,可以没有它,jQuery只是简单易事)来调用PHP脚本来加载数据为了你。当PHP脚本返回它的数据(JSON编码)时,在javascript中对其进行解码并输出(或执行您需要的任何其他操作)。

在PHP中,这里的示例脚本只是从$ POST获得一个可用于过滤数据库查询或其他内容的变量。请注意,在示例中,使用了mysql *扩展名。如果你有时间,而是看看PDO(mysql_ *是oooold)。 数据库查询在PHP中完成后,它将被JSON编码并发送回javascript并显示。

我现在只是在下面输入这个代码所以它可能无法正常工作,但它不应该做太多的调整。如果您在跟上此示例时遇到严重问题,我强烈建议您在尝试执行此操作之前先获得更强的PHP和JavaScript技能。

HTML:

<select id="mydropdown" onchange="loadData();">
    <option value="a">Some Option</option>
    <option value="b">Another Option</option>
</select>
<div id="displayArea">
</div>

Javascript :(首先将jQuery包含在您的脚本中)

<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/javascript">

    function loadData()
    {
        $.ajax(
        {
             url:"load_data.php",
             type:"POST",
             data:{selectedOption:$("#mydropdown").val()}
        })
        .done(function(data)
        {
             var returnData=$.parseJSON(data);
             //do something with the data that was returned
             $.each(returnData, function(k, v)
             {
                  //work with a single item in the array of returned data
                  $("#displayArea").append(v.name);
             });
        })
        .fail(function()
        {
            alert("Something went horribly wrong while trying to get your data! I think the internet is broken");
        });

    }

</script>

PHP:load_data.php

<?php

//get the selected option that was sent in jQuery's ajax call.  This can be used to filter your query
$selectedOption = $_POST['selectedOption'];


//connect to mysql and select a db
$conn=mysql_connect('host', 'user', 'password') or die(mysql_error());
mysql_select_db('mydb', $conn) or die(mysql_error());

//select data from the db
$query="SELECT id, name FROM people";
$result=mysql_query($query, $conn) or die(mysql_error());

//create an array to contain people selected from your DB.
$people = array();
while ($resultsArray=mysql_fetch_array($result))
{
    array_push($people, array("id"=>$resultsArray['id'], "name"=>$resultsArray['name']));
}

echo json_encode($people);

?>