我试图通过单击按钮来调用另一个.php文件中的函数,我在互联网上的其他地方遇到了这种方法,但我不确定它是否有效。我将PHP代码简化为简单地在屏幕上打印两次,而不是调用另一个文件,以演示哪里出了问题:
<?php
echo "hello";
?>
<?php
echo <<<END
<html>
<body>
<button type="button" onclick="handleButton()" id="button1">PHP Test</button>
<script type="text/javascript">
function handleButton()
{
document.getElementById("button1").innerHTML = "PHP Test<?php echo 'HELLO';?>";
}
</script>
</body>
</html>
END;
?>按下按钮不应该在屏幕上打印"HELLO“吗?相反,该按钮的HTML源代码变为:
<button type="button" onclick="handleButton()"
id="button1">
PHP Test
<!--?php echo HELLO;?-->
</button>当按钮被点击时什么也不会发生。既然"hello“打印得很好,为什么服务器会注释掉第二个php echo命令?
附言:我预计会有很多评论说,“你为什么要把这个放在首位?”我知道我可以制作一个提交到php文件的HTML表单,但我的目标是在屏幕上创建多个按钮,每个按钮指向一个不同的php文件。我知道我也可以让一个表单引导到一个单独的php文件,这个文件可以查看屏幕上的哪个按钮被按下,并调用适当的php文件,但我希望避免仅仅为了这样做而制作另一个php文件,如果这样可以工作的话。因此,除非我错过了一种更有效的方法,否则我更希望我们只关注服务器为什么注释掉PHP代码这一主题。谢谢。
发布于 2012-01-07 03:30:46
PHP是一种服务器端语言,在用户获取数据之前执行。这意味着你不能从JavaScript中调用PHP函数。为此,您必须向PHP页面发出AJAX请求,并在那里返回结果。此外,请确保将Hello放在引号中。我推荐在PHP和JavaScript上查找some tutorials,这样你就可以掌握两者之间交互的诀窍,以及如何让它们做你想让它们做的事情。
发布于 2012-01-07 03:33:10
顺便说一下,字符串需要用引号括起来。
<?php echo "hello"; ?>发布于 2012-01-07 03:43:39
如果我理解您在这里尝试做的事情,请尝试以下操作:
<html>
<body>
<button type="button" onclick="handleButton()" id="button1">PHP Test</button>
<script type="text/javascript">
function handleButton()
{
document.getElementById("button1").innerHTML = "PHP Test <?php echo 'HELLO';?>";
}
</script>
</body>
</html>假设上面的代码在一个文件"index.php“中,并且您使用http://example.com/index.php请求该文件。这将导致以下HTML被发送到您的浏览器(如果您在加载到您的浏览器中的页面上执行“查看源代码”,则可以看到该HTML):
<html>
<body>
<button type="button" onclick="handleButton()" id="button1">PHP Test</button>
<script type="text/javascript">
function handleButton()
{
document.getElementById("button1").innerHTML = "PHP Test HELLO";
}
</script>
</body>
</html>此时,单击该按钮与PHP无关,因为PHP已经完成了加载页面的任务。此时,如果您希望向服务器端PHP脚本发出请求,则必须使用表单、AJAX请求或IFRAME (我可以在这里继续)。
我希望这能澄清一点,但我必须强调这样一个事实:在尝试做你想要做的事情之前,你应该多读一些东西。
祝好运!
https://stackoverflow.com/questions/8763332
复制相似问题