2015-03-31 71 views
0

良好的一天,这是我的索引PHP创建选择标签使用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

的代码正如你看到的,我创建选择标签用PHP等等我可以通过使用循环做出多个选项,并且我希望如果我选择2015年javascript应该打印消息实际年,但它不工作我认为这个问题是在某处选择或发送价值可以有人比我更聪明看看这段代码并告诉我什么是错的?

回答

0

你的js代码没有响应代码。你的代码中还有一些其他错误会导致你的问题。

show_month(var)你不能把var作为这个特定的JS,改成别的东西。

windows.XMLHttpRequest这是窗口不是windows。

为了显示您需要使用的东西; 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>如果你是刚刚返回文本(最有可能的,你不需要它的一个原因)。

+0

我不想警觉我只是想要文本“在这里将信息“将更改为文本行在month.php – palci12 2015-03-31 09:52:16

+0

啊好吧,然后只需添加; document.getElementById(”txtHint“)。innerHTML = xmlhttp.responseText;而不是警报 – Dan 2015-03-31 09:54:08

+0

我添加,但没有改变 – palci12 2015-03-31 09:56:12

0

你的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(); 
} 

+0

我添加了处理响应,但它没有帮助仍然我的消息不会改变:( – palci12 2015-03-31 09:48:28

+0

你回答是最有用的,我只是使用小写innerHTML现在它的工作就像我想thx – palci12 2015-03-31 09:57:41