在js中调用php的方法是直接在script标签的src属性中嵌入要访问的php地址。
1、JS方式调用PHP文件并取得PHP中的值
举例说明:
如在页面test_json1中用下面这句调用:
<script type="text/javascript" src="/index.php/test/testjson2">
</script>
<script type="text/javascript" >
alert(jstext)
</script>
2、在test_json2.php中有这样一段PHP代码:
<?php
$php_test='I come from PHP!'
echo "var test='$php_test'"
echo "var jstext="."'$php_test'"
?>
当执行test_json1.php文件时,就会调用test_json2.php文件,并将b.php文件的输出作为JS语句来执行,
所以此处会弹出一个提示框,内容为JS变量jstext的值,也就是在PHP文件中赋给jstext的值。
3、调用结果:
可以在jquery的ajax方法成功执行之后,执行相应的js代码记住一句话 b/s结构 总是先执行服务器端的先。js是客户端脚本 ,是最后执行的。所以肯定是php先执行= =我是问怎么先输出JS然后才输出PHP。。你是指位置?位置跟执行先后没关系的。服务器先执行了php代码,把代码 变成PHP 三个字符。然后整个html就变成了。。再把东西扔回给浏览器,浏览器接到这些静态代码。就开始显示 <div id="dd"><h1>JS</h1></div> <!--当然这里你是不应该看得到的,但会在浏览器显示出来,因为javascript是动态添加到html里的 -->但楼下的说是 ”从上到下执行,不论是PHP代码还是js代码“。如果你说的是对的话,先执行PHP,至于输出的 语句位置 在 js输出语句 的前面还是后面主要看 PHP代码 在 JS代码 的前面还是后面。例子中无论PHP代码在哪,"PHP“都是最先输出的,但是语句的位置是要看你把PHP代码放在哪里傻啊,php是服务器脚本 语言,js是客户端脚本语言。怎么可能没区别呢?执行肯定 是php先执行。但你说显示,那就要根据你要它显示在那就显示在那。。显示位置跟执行没有任何关系。就好像你这样写。显示最先的会是php ,但javascript依然在最前面。对吧。位置在那不是执行先后决定的。是html的排序决定的。用javascript形式输出数据,其实那就是php把js的输出脚本变为字符串的形式,当js调用会执行php代码php中是不能执行js的,js只能在php解析成html后才能执行。如果想用php输出js 就要把js代码当作php的字符串来输出。
举例:
<?php$alert = alert(1)
echo "<script type=\"text/javascript\">".$alert."</script>"
?>
上面的代码解析成html 就会变成正常的js了。
<script type="text/javascript">alert(1)</script>