首页 > php一个小问题

php一个小问题

有一个function a($a){

}

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

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


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


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

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


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


HTML不能使用PHP层面的函数


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


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);
}

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


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


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

【热门文章】
【热门文章】