php - ajax回调函数为空

标签 php javascript ajax

这是我第一次使用 StackOverflow,如果我忘记了一些重要信息或者我的问题听起来很愚蠢,请原谅我!

我正在构建一个网站,一旦用户写下一个单词并点击“发送”按钮,该网站就会生成一个列表。 Php负责提取所需的数据并将其作为列表返回到网页。

我的问题是我想在 js 函数中传递这些数据。我在 StackOverflow 上阅读了很多与此相关的答案,听起来回调函数正是我所需要的。但是,我的 js 函数不断告诉我我的节点为空;看来ajax返回的数据没有被考虑在内。

以下是我的代码的一些部分:

<script>
        var xmlhttp;
        function loadXMLDoc(cfunc){
            if (window.XMLHttpRequest)  {// code for IE7+, Firefox, Chrome, Opera, Safari
              xmlhttp=new XMLHttpRequest();
            } else  {// code for IE6, IE5
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            var us = document.getElementById("user").value;
            var ur = document.getElementById("wiki").value;
            xmlhttp.onreadystatechange = cfunc;
            xmlhttp.open("GET","contributions_old.php?user="+us+"&wiki="+ur+"",true);
            xmlhttp.send();
        }
        function myFunction()   {
            loadXMLDoc(function() {                     
                if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                    document.getElementById("result").innerHTML=xmlhttp.responseText;
                    var parser = new DOMParser ();
                    var responseDoc = parser.parseFromString (xmlhttp.responseText, "text/html");
                    var text1 = responseDoc.getElementById('old1').value;
                    var text2 = responseDoc.getElementById('new1').value;

                    var dmp = new diff_match_patch();
                    dmp.Diff_Timeout = 0;

                    // No warmup loop since it risks triggering an 'unresponsive script' dialog
                    // in client-side JavaScript
                    var ms_start = (new Date()).getTime();
                    var d = dmp.diff_main(text1, text2, false);
                    var ms_end = (new Date()).getTime();

                    var ds = dmp.diff_prettyHtml(d);
                    document.getElementById('outputdiv').innerHTML = ds + '<BR>Time: ' + (ms_end - ms_start) / 1000 + 's';  
                }                   
            });
        }
    </script>

当用户输入单词后,当然是调用网页底部的 myFunction() 的“发送”按钮。 我还验证了我的网页,一旦生成了列表,就有以“new1”和“old1”作为 id 的 div(它们是通过我的 php 代码生成的)。

任何帮助将不胜感激!我觉得我已经尝试了一切!

谢谢! :)

最佳答案

强烈建议为此使用 jQuery 或其他一些库。

var url = "contributions_old.php?user=" + $("#user").val() + "&wiki=" + $("#wiki").val();
$.get(url);

关于php - ajax回调函数为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17754219/

相关文章:

javascript - 在 JS 中验证 secureimage 验证码

php - Laravel 关系使用Where

javascript - 从 webpack 包中排除一个模块

javascript - 刷新jsp页面上的特定div而不是整个页面

javascript - 如何根据 AJAX 请求在设定的时间段内显示加载动画

javascript - 为什么 jquery 看不到 html 的变化?

php - 用户在注册后需要管理员批准才能登录,并在注册后立即重定向到登录页面

php - 将我的数据库数据与特定日期进行比较

javascript - 使用 *ngFor 显示数组中的字符串值

javascript - react 路由器链接; activeClassName 不工作