显示JavaScript值问题

时间:2013-03-25 15:37:04

标签: php javascript dom

我已经创建了一个自动填充(建议)字段,因此当您键入时,您将获得字段下方的建议作为文本。我重新构建了javascript,我使文本可以点击。所以当你点击一个模态时(另一个小对话框)。

我想要的只是将建议字段中的文本显示给模态。 我正在使用$ .post(“thesuggtest.php”)方法,因为我需要获取所选的建议文本(将被点击)并通过php&和模式获取有关它的信息。 MySQL的。

这是我正在使用的主要JavaScript,但我遇到了一些问题。

function showHint(str)
        {
        if (str.length==0)
          { 
          document.getElementById("txtHint").innerHTML="";
          return;
          }
        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
          }
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            comeon = document.getElementById('comeon');
            document.getElementById('predlozi').innerHTML='<a data-toggle="modal" data-backdrop="static" href="#myMail" class="label ttip_b" title="New messages">' + xmlhttp.responseText + '</a><div class="modal hide fade" id="myMail"><div class="modal-header"><button class="close" data-dismiss="modal">×</button><h3>New messages</h3></div><div class="modal-body"><div id="comeon"></div>' + $.post("thesuggtest.php", { 'suggestion' : xmlhttp.responseText },function(data){comeon.innerHTML(data);console.log('Error:', data);}); + '</div></div>';

            }
          }
        xmlhttp.open("GET","gethint.php?q="+str,true);
        xmlhttp.send();
        }

我正在使用gethint.php文件来检索与字段中的输入值匹配的建议(我从数组中获取它们)。 问题是我无法回显模态(对话框)中的文本。

当我把document.write(data)我得到的值回显但是在空白页面上。 当我把comeon.innerHTML(数据)我得到Uncaught TypeError:不能调用null的方法'innerHTML'。我知道这种类型的错误是因为它无法找到元素来源并返回null。 此外,我在回调文本所在的模态中得到[object Object]。

有任何帮助吗?感谢。

1 个答案:

答案 0 :(得分:0)

以下是我可以注意到的一些问题;

comeon = document.getElementById('comeon');

你甚至不使用comeon div,但是在你创建之前你试图获得它。你可以在这一行下创建“comeon”div。

$.post("thesuggtest.php", { 'suggestion' : xmlhttp.responseText },function(data){comeon.innerHTML(data);console.log('Error:', data);});

$.post也是一个异步请求,所以它永远不会返回您要求它的任何文本。你可以打电话给其他事件点击<a data-toggle="modal"。而这次你将能够获得“comeon”div。

希望这有帮助。