我有一个带有函数的php类,我想用一个按钮的onclick事件来调用该函数。我想知道是否有任何方法可以做到这一点。这是代码:
<?php
class myClass{
function myClass(){
echo "myClass called";
}
}
?>
<html>
<title>sample project</title>
<body>
<form action="">
<input type="button" value="click" onclick="myClass()">
</form>
</body>
</html>
如果你能帮助我,我将不胜感激。
谢谢
答案 0 :(得分:2)
你可以这样做...... (但这不建议)
<?php
class myClass{
function myClass(){
echo "myClass called";
}
}
if($_POST['go']){
$foo = new myClass();
}
?>
<html>
<title>sample project</title>
<body>
<form action="" methode="post">
<input type="hidden" name="go" value="1" />
<input type="submit" value="click" />
</form>
</body>
</html>
但在你的情况下你应该使用ajax,将php与html和/或javascript混合起来并不是很好的编码。
答案 1 :(得分:2)
我不打算详细介绍服务器端和客户端编程之间的区别,因为它超出了这个问题的范围。
简短的回答是你无法做到。 PHP在interpreter上执行。您为网页提供服务的客户端可能有PHP解释器。
您正在寻找的答案是JavaScript,它也可以在解释器上执行,但与PHP不同,它内置于所有现代浏览器中。
高级解决方案是将PHP和HTML拆分为单独的文件。您提供HTML,其中包含Javascript,然后调用您的PHP脚本。
在您的HTML中,您可以在网页中包含JQuery:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script></head>
现在您可以访问各种有用的Javascript好东西了。
下一步是在可公开访问的URL上提供PHP脚本。 e.g。
http://example.com/myphpscript.php
里面会包含你的代码:
<?php
class myClass{
function myClass(){
echo "myClass called";
}
}
$myClassInstance = new myClass();
?>
假设您运行的版本低于PHP 5.3.3,myClass()
被视为构造函数。也就是说,在MyClass
实例化时会自动调用它,即new MyClass
。
如果您运行的是PHP 5.3.3或更高版本,只需将函数myClass()
的名称更改为__construct()
。
完成此步骤后,是时候编写一些Javascript了。您需要做的是使用Javascript来注册单击按钮时侦听的事件侦听器,并在发生这种情况时执行一些Javascript代码。
我不想复制答案,因此您可以在此处找到答案:ajax post within jquery onclick
答案 2 :(得分:1)
因此,这是Web开发的一个问题,因为html / css / javascript是客户端,而PHP是服务器端。正确地说你仍然可以用ajax实现你的目标,但我使用一个简单的jQuery技巧来调用PHP代码。这是:
将此添加到HTML
<div class="holder"></div>
然后是CSS
.holder {
display: none;
}
然后是javascript
function myClass() {
$('.holder').load('path/to/php/file');
}
php文件返回的任何HTML(如echo或print_r将被放入holder div中,但不会显示。