搜索
php一个小问题
PHPz
PHPz 2017-04-10 16:25:01
[PHP讨论组]

有一个function a($a){

}

echo "<input type=submit onclick=调用这个函数 >"

该怎么写??
为什么我写出来的执行不了呢

PHPz
PHPz

学习是最好的投资!

全部回复(10)
怪我咯

HTML不能使用PHP层面的函数

PHP中文网

echo到页面的是一段html文本,这个时候input.submit触发的a()是页面中的javascript函数,你在php里定义的a()是调用不了的

天蓬老师

onclick是浏览器的一个事件,能调用一个JS函数,但不能调用PHP函数,因为PHP解释器是在服务器.所以你可以这样,onclick后调用一个JS函数,这个JS函数向PHP服务器发出AJAX请求,这时你就可以编写PHP函数来响应并返回数据给浏览器了.AJAX操作建议使用jQuery库的$.post()和$.get()来进行.

怪我咯

前后端分清楚,
如果是希望客户端click时才调用执行那个函数,
那么函数就要写成js的,onclick里面调用js函数,
如果是服务器运行那个函数,onclick里面的东西在页面加载出来就是固定的了,

伊谢尔伦

php是在服务器端执行的,javascript是在客户端执行的。虽然代码写在一起,但执行时间不一样。

你可以用php在页面中输出javascript来给前端变量赋值。
也可以用javascript请求url接口的方式来执行php在后端封装好的方法。

黄舟

代码的执行顺序是先在服务端执行PHP代码,由PHP输出String类型的HTML代码到客户端,此时PHP执行完了就不能再执行任何PHP代码的,然后接下来的事情就交给浏览器、JS、CSS等来渲染解析执行了。。。
你可以在HTML中用JS移植你的PHP函数,然后执行JS函数,比如:

/*HTML*/
<input type="submit" onclick="test(<?php echo $a;?>)" >
/*JS*/
function test(a){
    console.log(a);
}
怪我咯

一般html调用的函数在js里面

PHPz

如果题主看完前面的答案,已经分清了前端脚本和后端脚本。
那么现在的需求用ajax应该能够实现

黄舟

在浏览器里面是没有php代码的。php先对文件进行解析,生成html文件,然后浏览器拿到的html文件里面一行php代码都没有。当然不能执行了。

高洛峰
echo "<input type='submit' onclick='a()'>";

应该是这么写吧。
form中input type是submit的时候点击会提交这个form,你可以把type='submit'改成type='button'

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板