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


calling PhP function in JavaScript returns white screen

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

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

主要问题是页面变白(就像我调用回声";)时,这不应该发生。我用一个完全空的test((;进行了测试,最终遇到了同样的问题。

回答我为什么要调用函数的问题:我需要在按下某个键时更新一个 SQL 表。 据我所知,在 PHP 中制作 KeyListener 是不可能的,在 JavaScript 中使用 SQL 也太不安全了。

问候和感谢帮助

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

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

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

如果要在浏览器中发生事件的那一刻执行php函数,则应向服务器发出http请求。这可以通过提交表单、导航到其他url或发出ajax调用来完成。在这些情况下,服务器收到请求,可以执行php,这将再次生成内容并将其发送回浏览器。

您可以在互联网上找到示例ajax代码,例如 这里.