PHP to JS:打印与AJAX responseText兼容的js变量(如PHP echo)?

时间:2012-04-09 03:28:50

标签: javascript ajax variables

我正在使用W3 Schools的AJAX PHP示例(http://www.w3schools.com/ajax/ajax_aspphp.asp)作为我的 guestlist网络应用的基础,该应用使用存储的数据 LocalStorage ,而不是MySQL数据库,以便用户能够在离线时进行搜索。现在我正在尝试最终确定搜索客户部分。

这是它的工作原理(与上面的例子不同):

  1. (的index.php)。将MySQL db中的所有记录放入/镜像到 javascript数组
  2. (的index.php)。在LocalStorage中存储上述js数组
  3. (的index.php)。通过使用示例中使用的AJAX GET代码, 将搜索到的项目发送到getData.html(一个html文件而不是 像W3那样的php文件)
  4. (getData.html)。成功获取搜索到的项目 网址参数
  5. (getData.html)。循环并匹配像中的值 上面的例子(代码在javascript中重写)。
  6. 但是在这里结束了我的成功。 AJAX代码与上面提供的示例中的代码相同(当然除了引用getData.html),其他一切似乎都在工作,所以我不会打扰你的整个代码。在上面提到的例子中,在PHP文件的最后部分,它说

        //output the response
        echo $response;
    

    这是javascript似乎失败的地方。我一直试图回应/打印响应,但出于某种原因,它没有正确地返回到index.php。迫使它至少显示某些内容的唯一方法是使用php echo,或者只是在HTML标签中的getData文档中的某处写简单的html文本。我也试过getElementById('txtHint')。innerHTML =“hello”;看它是否有效但没有成功。

    最明显的方法,只需将echo $ response替换为js中的等效项:

        document.write(response);
    

    但无论document.write打印什么都没有。应该弹出“提示”的div是还是空的。我用google搜索解决方案,打印js变量的不同方法没有取得进一步的成功。也许, document.write与XML或AJAX responseText“不兼容”?必须有一个简单的解决方案。希望你们能帮助我。谢谢!

1 个答案:

答案 0 :(得分:0)

php当然是一种服务器端语言,它会发出一个页面并在你的后端运行 js当然是在用户前端运行的客户端语言 document.write()是发出客户端文本的正确函数;它在页面加载时运行。例如:

<b>My domain is: <script>document.write(document.domain);</script></b>

正确给出

  

我的域名是:www.mydomain.com