Home >Backend Development >PHP Tutorial >php一个小问题
有一个function a($a){
}
echo ""
该怎么写??
为什么我写出来的执行不了呢
有一个function a($a){
}
echo ""
该怎么写??
为什么我写出来的执行不了呢
HTML不能使用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函数,比如:
<code>/*HTML*/ <input type="submit" onclick="test(<?php echo $a;?>)"></code>
<code>/*JS*/ function test(a){ console.log(a); }</code>
一般html调用的函数在js里面
如果题主看完前面的答案,已经分清了前端脚本和后端脚本。
那么现在的需求用ajax应该能够实现
在浏览器里面是没有php代码的。php先对文件进行解析,生成html文件,然后浏览器拿到的html文件里面一行php代码都没有。当然不能执行了。
<code>echo "<input type="submit" onclick="a()">";</code>
应该是这么写吧。
form中input type是submit的时候点击会提交这个form,你可以把type='submit'改成type='button'