0

这可能有一些我想念的非常明显的答案,但我似乎无法弄清楚。PHP 的所有搜索功能和查询都有效。唯一不起作用的是数据没有在已翻译的文本区域中正确显示。下面是代码。

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

在该innerHTML部分之后,我添加的任何内容(从文本到 html)都会进入正确的位置,但现在上面的代码说它是undefined.

4

3 回答 3

1

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

更方便的方法是使用jquery ajax方法:http ://api.jquery.com/jQuery.ajax/

于 2013-06-19T01:16:05.883 回答
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>
于 2013-06-19T01:27:12.767 回答
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);
于 2013-06-19T01:16:10.893 回答