2013-06-19 109 views
0

这可能有一些非常明显的答案,我错过了,但我似乎无法弄清楚。所有来自PHP和查询的搜索功能都能正常工作。唯一不起作用的是数据在文本区域翻译的中未正确显示。以下是代码。javascript值未定义从PHP函数

document.getElementById("translated").innerHTML = xmlhttp.open("GET","ajax-result.php?result="+num,true); 

innerHTML部分,无论我加(从文本到HTML)后进入正确的地方,但现在上面的代码中说,这是undefined

+1

...这不是阿贾克斯如何工作。 – jeremy

+0

@Nile该函数从php查询中返回正确的值。它只是不显示它的权利。 – deathtap

回答

1

xmlhttp.open不会返回任何东西 - 这就是为什么你得到“未定义”。阅读http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp,特别注意 xmlhttp.onreadystatechange部分。

更为方便的方式来做到这一点是使用jQuery的ajax方法:http://api.jquery.com/jQuery.ajax/

+0

用于'xmlhttp.onreadystatechange =函数() { 如果(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 的document.getElementById( “myDiv”)的innerHTML = xmlhttp.responseText。 } } xmlhttp.open(“GET”,“ajax_info.txt”,true); xmlhttp.send();'它的工作完美无瑕。谢谢。 – deathtap

0

这不是Ajax如何工作。你应该有被称为一个回调函数,当服务器响应

喜欢的东西

if (window.XMLHttpRequest) { 
     xmlhttp=new XMLHttpRequest(); 
} 
// setup callback function 
xmlhttp.onreadystatechange=function(){ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
     if(xmlhttp.responseText == 1){ 
      document.getElementById("translated").innerHTML = xmlhttp.responseText; 
     } 
    } 
} 
xmlhttp.open("GET",'your request to sever',true); 
0

如果你真的想保存自己有些头疼,我熟悉的jQuery。

下面是你试图完成的一个完整的工作示例。

输入和按钮的实现只是为了模拟指定值并调用函数的方法。

<!DOCTYPE html> 
<html> 
    <head> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
    </head> 
    <body> 
     <script type="text/javascript"> 
      function runAjax(num) { 
       $.ajax({ 
        'url': 'ajax-result.php', 
        'type': 'GET', // Can also be 'POST' 
        'data': { 
         'result': num 
        }, 
        'success': function(result) { 
         $('#translated').html(result); 
         alert('success!'); 
        }, 
        'error': function(xhr, status, exception) { 
         alert('failed with status code: ' + status); 
        } 
       }); 
      } 

      $(document).ready(function() { 
       $('button').click(function() { 
        var $input = $('input'); 
        var num = $input.val(); 
        runAjax(num); 
       }); 
      }); 
     </script> 

     <input type="text" name="num" value="123" /> 
     <button type="button">Click Me!</button> 
    </body> 
</html> 
+1

谢谢你。我一直有意深入研究jQuery。 – deathtap

+0

没有问题。祝你好运! –