网页开发的阶段总结(三)--JS与PHP直接互调用
在公司项目的改造当中,经常会遇到js与php的函数互调的情况,而实际上JS与php的设计者是不提倡这两种语言直接进行调用的,一个是客户端语言,一个服务端语言,两者之间的交互往往靠的是ajax机制,get(),post()进行数据的传递。而且在两者在进行直接调用,往往有以下的限制:
1、首先,php与JS之间的互调只能在同个文件里,对其它文件的调用都会失败,无论是php还是JS的。
2、php与JS之间的调用只能针对的是函数,而对变量都不能实现引用,即在"<?php ?>"中php不能引用JS的变量, 相反在"<script> </script>"中JS也不能引用php的变量。而通过网上搜索说可以实现互调,有可能是浏览器兼容的问题,本人用的浏览器是Google Chrome(版本 37.0.2062.103 m),这也在从侧面说明php与JS的直接互调很容易出现BUG。
3、在函数的调用时都要有返回值,php通过“echo”或“return”将数值返回,而JS通过“document.write()”或“return”将数值返回。
4、对函数的调用时,都要用一个变量将函数传递回来的值进行保存。例:在JS中 var y = "<?php JSphpTest()?>"; 在php中 $phpB = "<script> phpJSTest()</script>";注意:记得在对函数调用时要加上" "双引号。
附上部分代码:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title></title><script language="JavaScript" src="javascript.js"></script> <script language="JavaScript"> function JSTest() { var $tmp = "Hello, JS use the same file JS function"; return $tmp; } function phpJSTest() { document.write("Hello, php use the same file JS function"); } var tmp = "php call the same file JS element"; document.write("<br/><br/><br/><br/>"); document.write("script---call---show :"); document.write("<br/>"); //use the same file js function var x = JSTest(); document.write(x); document.write("<br/>"); //use same file php function var y = "<?php JSphpTest()?>"; document.write(y); document.write("<br/>"); //use another file's JS function var z = fileouter(); document.write(z); document.write("<br/>"); </script> <?php function phpTest() { echo "Hello, php use the same php function"; } function JSphpTest() { echo "Hello, JS use the same file php function"; } include 'PHPcallOutfilePHP.php'; echo "<br/><br/><br/><br/>"; echo "php---call---show"."<br/>"; //php call the same file php function $phpA = phpTest(); echo "$phpA"."<br/>"; //php use the same file JS function $phpB = "<script> phpJSTest()</script>"; echo "$phpB"."<br/>"; //php use external file php function $phpC = phpcalloutfilephp(); echo "$phpC"."<br/>"; ?> </head> </html>完整代码下载地址:http://download.csdn.net/detail/aba13579/7874961
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。