[英]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>
當下拉列表中的值更改時,我需要運行另一個查詢。 為此,我嘗試了以下方法:
更改時,我正在運行函數ILovePHP()
,該函數由腳本提供:
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.