我有一个按钮,当单击该按钮时,我希望它调用一个函数来进行一些处理。但是它不会调用函数。错了怎么办?
<input type="submit" name="submit" onclick="counterminus()" id="submit" value="Buy!"
<?
function counterminus()
{
$cmeter = $cmeter - 1;
mysql_query("INSERT orders SET quantity='$value',fbId='$fbme',fbName='$fbName', email ='$fbEmail', dealName='$dealName'" );
mysql_query("UPDATE stardeal SET cmeter='$cmeter'WHERE dealId='$dealId'");
echo '<script type="text/javascript">'
, 'reloadPage();'
, '</script>';
}
?>
问题是您将PHP与客户端语言混淆了。所有的PHP处理都是在页面发送给用户之前在服务器端完成的,因此客户端不能在不向服务器发送请求的情况下调用PHP脚本。
尝试将javascript事件连接到按钮,该按钮将发布到PHP脚本。
我希望这能解决你的问题。
代码:
<html>
<body>
<?php
$a = "hello";
?>
<script>
function echoHello()
{
alert("<?php hello(); ?>");
}
</script>
<?php
function hello() {
global $a;
echo $a;
}
?>
<button onclick="echoHello()">Say Hello</button>
</body>
</html>
PHP是一种服务器端脚本语言,这意味着当从服务器请求页面时脚本会执行,当客户端下载页面时脚本就会停止。因此,不可能直接从网页调用PHP函数,因为脚本不再运行。
然而,JavaScript在加载页面时启动,并一直运行到页面关闭。因此,您应该使用它来处理按钮事件。如果您绝对需要在服务器上调用PHP代码,您可以查看AJAX。
如下调用服务器端的函数,并在执行查询后重定向页面。
<?php
if(isset($_REQUEST['submit']))
{
counterminus();
}
function counterminus()
{
$cmeter = $cmeter - 1;
mysql_query("INSERT orders SET quantity='$value',fbId='$fbme',fbName='$fbName', email ='$fbEmail', dealName='$dealName'" );
mysql_query("UPDATE stardeal SET cmeter='$cmeter'WHERE dealId='$dealId'");
Header("location:samePage.php");
}
?>
<input type="submit" name="submit" id="submit" value="Buy!" />