Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Javascript函数调用PHP函数_Php_Javascript - Fatal编程技术网

从Javascript函数调用PHP函数

从Javascript函数调用PHP函数,php,javascript,Php,Javascript,我有一个函数,在PHP页面的body load上调用 <script> function testConnection() { var sDataLoader = readCookie('DataLoader'); <?php connTest(sDataLoader); ?> } </script> connTest是一个php函数,它接受javascript变量并执行某些操作。这一切看起来

我有一个函数,在PHP页面的body load上调用

<script>
    function testConnection()
    {
        var sDataLoader = readCookie('DataLoader');
        <?php connTest(sDataLoader); ?>     
    }
</script>
connTest是一个php函数,它接受javascript变量并执行某些操作。这一切看起来都是错误的,但它在我的一台LAMP服务器上工作,完全出乎我对另一台服务器的意料

未知错误类型:[8]使用未定义的常量sDataLoader-假定为“sDataLoader”

服务器的配置非常不同,这显然造成了巨大的差异,但我不明白它为什么/如何工作,所以我无法弄清楚如何在两台服务器上都工作。

在客户端执行标记时,服务器上运行的代码的PHP部分已经完全完成。鳍消失了,失去了记忆,再也看不见,再也听不见了

调用connTest并传递Javascript变量sDataLoader的概念毫无意义,除非您放弃所有线性时间的概念

如果希望在服务器上执行更多代码,则需要发出新的HTTP请求并发送相关数据。有很多方法可以做到这一点,包括AJAX、iFrame、回发等


至于为什么这在另一台服务器上有效,显而易见的答案是它没有。有可能只是碰巧有一个名为sDataLoader的服务器端变量,它做了一些可能与工作混淆的事情。

PHP在服务器上执行,结果输出发送到浏览器。然后浏览器执行JavaScript。如果你弄明白了,请告诉我,lol。我很确定你误解了LAMP服务器上的一切工作方式。在这种情况下,Ajax是首选的。为什么不改用它呢?我没有写它,我只是想弄清楚它为什么工作……sDataLoader可以是PHP中的一个常量,正如错误消息所暗示的,这是我看到它做任何事情的唯一方式。那么是什么导致它不会抛出任何错误并在服务器上工作呢。因为我已经彻底检查过了,$sDataLoader从未定义过。如果没有$,请检查是否没有任何定义的'sDataLoader'。。。那里不太可能,但可能是函数根本没有被调用,或者您的其他服务器只是忽略了错误。既然sDataLoader只是读取cookie的值,那么是否有人在PHP中实现了相同的cookie读取代码并使用了相同的变量名?如果无法访问工作服务器上的所有代码,这真的是任何人的猜测。也许可以查看您的-即错误报告的设置。PHP版本中似乎也存在一些差异。