<?php
if(isset($left))
{
echo "<button name = rightname onclick= \" disp();\">". "$left"."</button>";
}
?>
这里disp是一个php函数。但我无法使用它。任何人都可以说我如何克服这个问题...
答案 0 :(得分:1)
运行PHP函数以响应用户在浏览器中点击某些内容的唯一方法是向服务器发送HTTP请求。
实现这一目标的最简单方法是:
<a href="disp.php"><?php echo htmlspecialchars($left); ?></a>
然后,您需要编写disp.php,使其包含您要运行的函数,并调用它。然后,您需要向浏览器返回适当的响应(例如,要显示的页面或重定向(通过位置)标题。
您还可以查看使用XMLHttpRequest(可能通过第三方库,如YUI或jQuery)使用JavaScript发出HTTP请求,而无需用户离开页面(Ajax)。根据您的问题,显示所拥有的知识量,您可能需要先introduction to JavaScript。
答案 1 :(得分:0)
只需尝试这样
<?php
if(isset($left))
{
?>
<button name ="rightname" onclick= "<?php disp();?>"><?php echo $left;?></button>
<?php
}
?>
答案 2 :(得分:0)
如果您不使用Aston的答案,您可以按照以下方式更正您的代码:
<?php
if(isset($left))
{
echo '<button name ="rightname" onclick= "' . disp() . '">'. $left .'</button>';
}
?>
我想指出你可以使用单引号来更容易处理内部的双引号。
答案 3 :(得分:0)
onclick仅适用于javascript函数,而不适用于PHP函数,这是行不通的。 请参阅BoltClock在您提问的评论。
与javascript结合运行php的方法之一是使用ajax帖子(http://api.jquery.com/jQuery.post/)。例如:
$.post("test.php", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});
当使用字符串连接变量时,您不需要将变量放在双引号之间,或者只是将变量放在字符串中而不关闭双引号。
echo "<button name='rightname' >". $left."</button>";
或(仅在使用双引号时才有效)
echo "<button name='rightname' >$left</button>";
答案 4 :(得分:0)
在烦扰AJAX之前,你能不能问我disp()
函数的用途?如果它不是很大程度上依赖于服务器交互(文件操作,数据库连接),我们可以帮助您将其移植到JS并消除对AJAX的需求。
答案 5 :(得分:-1)
我会这样写:
<?php if(isset($left)) : ?>
<button name="rightname" onclick="<?php disp(); ?>"><?php echo $left ?></button>
<?php endif; ?>