簡體   English   中英

php用ajax創建選擇標簽

[英]php created select tag with ajax

美好的一天,這是我的索引代碼

<!DOCTYPE html>
<html>
<body>

<script>
    function show_month(var) {
        if (windows.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        }
        else {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.open("GET","month.php?q="+var,true);
        xmlhttp.send();
    }
</script>

<?php
    $from = (date('Y'));
    $to = 2050;
    echo '<form>';
    echo '<select name="year" onchange="show_month(this.value)">';

    for($y = $from; $y <= $to; $y++) {
        echo "<option value=$y>{$y}</option>";
    }
    echo '</select>';
    echo '<form>';
?>

<div id="txtHint"><b>here will be info</b></div>

</body>
</html>

這是我month.php的代碼

<!DOCTYPE html>
<html>
<body>

    <?php
        $q = $_GET['q'];
        echo $q;
        if ($q == 2015) {
            echo "actual year";
        }
        else {
            echo "unactual year";
        }
    ?>

</body>
</html>

如您所見,我使用php創建了select標簽,所以我可以僅通過使用loop來選擇year的多個選項,我希望如果我選擇Year 2015 javascript應該打印消息實際年份,但它不起作用,我認為問題出在select中或發送價值, 比我更聰明的人可以查看此代碼並告訴我什么地方不對?

您的js代碼缺少處理服務器響應的代碼

<script>
function show_month(var) {
    if (windows.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    }
    else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
     {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
         document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
   }
    xmlhttp.open("GET","month.php?q="+var,true);
    xmlhttp.send();
}

您的js代碼沒有響應代碼。 另外,您的代碼中還有一些其他錯誤,這些錯誤會給您帶來麻煩。

show_month(var)您不能擁有var,因為它特定於JS,請將其更改為其他名稱。

windows.XMLHttpRequest這是不是窗口的窗口。

為了顯示您需要的東西; alert(xmlhttp.responseText); 在您的回應中。

    <script>
    function show_month(t) {
        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        }
        else {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                 document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
            }
        }

        xmlhttp.open("GET","month.php?q="+t,true);
        xmlhttp.send();
    }
</script>

最后,如果您只是返回文本,則您在month.php中不需要<!DOCTYPE html> (很可能您將不需要它的原因)。

暫無
暫無

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

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