簡體   English   中英

基於php查詢的級聯下拉列表

[英]Cascading dropdowns based on a php query

我有一個下拉菜單,其中包含一周中的每一天。

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. 更改時,我正在運行函數ILovePHP() ,該函數由腳本提供:

    b =警報(b);

myfunction()是用php編寫的,例如

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

但是...我的查詢沒有運行。 我究竟做錯了什么?

您有一個錯字-您將查詢放入名為$sql的變量中,然后將另一個變量傳遞給mysql_query$sql2

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

你需要使用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標簽中獲得所需的結果。

讓我知道您是否需要更多幫助。

您需要在下拉列表更改時發送ajax請求,此ajax請求將從查詢中獲取結果並創建html,然后需要用jquery替換html。 有關詳細信息,請參見以下鏈接。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM