基于php查询的级联下拉列表

时间:2015-05-07 04:21:09

标签: javascript php html mysql

我有一个下拉列表,其中包含一周中的每一天。

DAYS[Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday] 

然后我运行此查询:

"SELECT DISTINCT DAY_1 FROM credit_three"

我使用以下代码将结果放在另一个下拉列表中:

<select name='DAY_1' onchange="ILovePHP();">
    <?php while ($row = mysql_fetch_array($result)) {
        echo"<option value='" .$row['DAY_1']."'>". $row['DAY_1']."</option>";
    }
</select>

当下拉列表中的值发生变化时,我需要运行另一个查询。为此,我尝试了以下方法:

  1. On-Change我正在运行由脚本提供的函数ILovePHP()

        b =     警报(B);
  2. myfunction()是用php编写的

    function myfunction() {
        $sql = "SELECT TIME_1 FROM CREDIT_THREE WHERE DAY_1=DAY1";
        $result = mysql_query($sql2);
        row = mysql_fetch_array($result);
     }
    

    但是......我的查询没有运行。我做错了什么?

3 个答案:

答案 0 :(得分:0)

您有一个拼写错误 - 您将查询放入名为$sql的变量中,然后将另一个变量传递给mysql_query,&#34; $sql2&#34;

$sql="SELECT TIME_1 FROM CREDIT_THREE WHERE DAY_1=DAY1";
$result=mysql_query($sql2);

答案 1 :(得分:0)

您需要使用AJAX来运行服务器端功能。

试试这个:

<script>
function myfunction(str2) {
    var xmlhttp;
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
      }
    }
    xmlhttp.open("GET", "ajax_info.php?q=" + str2, true);
    xmlhttp.send();
}
</script>

要设置str2的值,您需要传入this.value

ajax_info.php页面中,您现在可以对查询进行编码,结果将在div标记中显示id="mydiv"。您可以在前端页面的任何位置执行此操作,如下所示:

<div id="mydiv"></div>

现在您可以使用以下行:

echo"<option value='" .$row['DAY_1']."'>". $row['DAY_1']."</option>";

在您的ajax_info.php页面中,并在div代码中获得您想要的结果。

如果您需要更多帮助,请与我们联系。

答案 2 :(得分:-1)

你需要在更改下拉列表时发送ajax请求,这个ajax请求将从查询中获取结果并创建html,然后你需要用jquery替换html。 有关详细信息,您可以看到以下链接..

http://www.plus2net.com/php_tutorial/ajax_drop_down_list-demo.php