在JavaScript中调用PhP函数会返回白屏

时间:2015-11-21 22:02:39

标签: javascript php ajax function

在有人抱怨之前:我知道javascript是客户端,而php是服务器端。 我需要在我的javascript中调用一个php函数(两个都在同一个文件中)。

document.write("<?php add(); ?>");

从它应该调用php中的函数。主要问题是页面变白(就像我调用echo“”;),这不应该发生。我用一个完全空的测试()测试,结果出现了同样的问题。

回答我为什么要调用该函数的问题:我需要在按一个键时更新一个sql表。据我所知,它不可能在PHP中制作一个keylistener,并且在javascript中使用sql太不安全。

问候和求助

1 个答案:

答案 0 :(得分:0)

当您在页面加载期间的任何其他时刻使用document.write时,它将清除您的文档并将其替换为您传递的任何参数。从您的问题来看,您似乎在事件处理程序中运行此代码,就像keypressed事件一样。在这种情况下,预期document.write的行为会使您的页面变为白色。不要在那里使用它。

您需要做的是确定文档中要插入内容的位置,更准确地说,在哪个元素中插入内容,并为其提供内容。您可以使用多种方法,例如.innerHTML,但不能使用document.write

其次,您应该了解当您传递一个参数,其中php生成了值时,这些参数是在php生成页面时计算的,而不是在相应的{{ 1}}执行。在后一刻,没有调用javascript,因为php已经在页面生成过程中完成了它的工作。

如果您想在浏览器中一个事件时执行php功能,您应该向服务器发出php请求。这可以通过提交表单,导航到其他http或发出url来完成。在这些情况下,服务器会收到请求,并且ajax可以执行,这将再次生成内容并将其发送回浏览器。

您可以在互联网上找到示例php代码,例如here