2012-04-09 43 views
2

我使用W3学校的AJAX PHP示例(http://www.w3schools.com/ajax/ajax_aspphp.asp)作为我的使用存储在localStorage的数据,而不是guestlist Web应用程序基础MySQL数据库,以便用户能够在离线状态下进行搜索。现在我正在尝试完成搜索客人部分。PHP to JS:打印js变量(如PHP echo)与AJAX responseText兼容?

这是如何工作的(和不同上面的例子):

  1. (的index.php)。将MySQL数据库中的所有记录放入/镜像到 javascript数组
  2. (index.php)。将上述js数组存储在LocalStorage中
  3. (index.php)。通过使用示例中使用的AJAX GET代码, 将搜索到的项目发送到getData.html(作为W3文件而不是 php文件)
  4. (getData.html)。通过 URL参数
  5. (getData.html)成功获取搜索项。循环浏览并匹配上述示例中的 (在JavaScript中重写代码)中的值。

但是这里结束了我的成功。 AJAX代码与上面提供的示例中的代码完全相同(当然除了getData.html的引用外),并且其他所有内容似乎都能正常工作,所以我不会打扰您使用我的整个代码。在上面提到的例子中,在PHP文件的非常按钮上,它说

//output the response 
    echo $response; 

这是JavaScript似乎失败的地方。我拼命试图回应/打印回应,但由于某种原因,它不会正确返回到index.php。强制显示至少一些东西的唯一方法是使用php echo,或者只是简单地在HTML标记中的getData文档中的某处编写普通的html文本。我也试过getElementById('txtHint')。innerHTML =“hello”;看看它是否有效,但没有成功。

做到这一点,最明显的方法将只需更换与JS相当于回声$回答:

document.write(response); 

但无论文件撰写打印,什么也没有dipslayed。其中“提示”应该弹出的div是,但仍为空。我已经使用了解决方案,不同的方式来打印js变量而没有进一步的成功。或许,document.write与XML或AJAX responseText不兼容?必须有一个简单的解决方案。希望你们能帮助我。谢谢!

+2

请(HTTP:// w3fools。 com) – Pointy 2012-04-09 03:42:02

+0

这里有太多的信息。我建议你退一步仔细诊断一下,以更准确地确定基本问题。煮沸。在关键部分,你说你使用“echo $ response”,但这是javascript失败的地方。这对我来说没有意义。 echo是一个php语句。这是如何导致JavaScript失败?另外:它没有意义说**它不会返回到index.php正确**。 Index.php是一个运行和EMITS输出的脚本。没有什么会被返回给它。你需要对这一个做更多的分析。 – Cheeso 2012-04-09 04:04:11

+0

我不会和你争论那个,但是如果它是一个复杂的问题容易解释我会发现答案是肯定的。请不要对表达方式全部肛门,而是试着理解我的意思。 但底线很简单: 我CANT获取JavaScript以打印一个变量以PHP echo的相同方式,为了它的工作。我知道没有什么是从getData到index的“返回”,但如图所示,AJAX部分设置为获取getData中打印的内容,但它赢得了工作。 docuemtn.write(respons)不会在php echo中显示相同的变量。 – Jonathan 2012-04-09 12:57:03

回答

0

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

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

适当给予

我的域名:[考虑使用比W3Schools的其他来源] www.mydomain.com