1.

在公司项目的改造当中,经常会遇到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> 2.js confirm()方法的使用方法实例

如果用户点击确定按钮,则 confirm() 返回 true。如果点击取消按钮,则 confirm() 返回 false。

在用户点击确定按钮或取消按钮把对话框关闭之前,它将阻止用户对浏览器的所有输入。在调用 confirm() 时,将暂停对 JavaScript 代码的执行,在用户作出响应之前,不会执行下一条语句。

下面我们通过这两个小例子,来了解一下它的使用方法吧:

复制代码代码如下:
<html>
<head>
<title>confrim 的使用方法</title>
<script type="text/javascript">
function clear1()
{
 if(confirm("确定要清空数据吗?"))
 {
 document.main.text1.value="";
 }
}
</script>
</head>
<boty>
<form name="main">
<input type="text" name="text1"/>
<input type="button" name="submit" value="数据清空" onclick="return clear1()"/>
</form>
</body>
</html>

<html>
<head>
<title>js confirm</title>
<script>
function begin()
{
 var a=confirm("郭杨和小代是好朋友吗?");
 if(a==true)
 {
 /*document.write("恭喜你答对了!");*/
 alert("恭喜你答对了!");
 begin();
 }
 else
 {
 /*document.write("你真是猪,这么简单的问题都答不对!");*/
 alert("你真是猪,这么简单的问题都答不对!");
 begin();
 }
 }
</script>
</head >
<body onload="begin()">
</body>
</html>


 

js和 php 介绍的更多相关文章

  1. FormData js对象的介绍和使用

    FormData js对象的介绍和使用 FormData对象,可以把所有表单元素的name与value组成一个queryString,提交到后台. 在使用ajax提交时,使用FormData对象可以减 ...

  2. doT.js具体使用介绍

    官网: http://olado.github.iodoT.js具体使用介绍 用法: {{= }} for interpolation {{ }} for evaluation {{~ }} for ...

  3. vue系列---Mustache.js模板引擎介绍及源码解析(十)

    mustache.js(3.0.0版本) 是一个javascript前端模板引擎.官方文档(https://github.com/janl/mustache.js) 根据官方介绍:Mustache可以 ...

  4. JS 各种引擎介绍

    JS 各种引擎介绍 http://www.oschina.net/project/tag/296/javascript-engine 不同浏览器有不同的JS引擎: WebKit , Safari浏览器 ...

  5. 【FIORI系列】SAP OpenUI5 (SAPUI5) js框架简单介绍

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FIORI系列]SAP OpenUI5 (SA ...

  6. jquery.form.js官方插件介绍Form插件,支持Ajax,支持Ajax文件上传

    jquery.form.js官方插件介绍Form插件,支持Ajax,支持Ajax文件上传 http://www.malsup.com/jquery/form/#getting-started [JQu ...

  7. [转]为什么我要用 Node.js? 案例逐一介绍

    原文地址:http://blog.jobbole.com/53736/ 介绍 JavaScript 高涨的人气带来了很多变化,以至于如今使用其进行网络开发的形式也变得截然不同了.就如同在浏览器中一样, ...

  8. HTML5系列四(特征检测、Modernizr.js的相关介绍)

    Modernizr:一个HTML5特征检测库 Modernizr帮助我们检测浏览器是否实现了某个特征,如果实现了那么开发人员就可以充分利用这个特征做一些工作 Modernizr是自动运行的,无须调用诸 ...

  9. 【转】为什么我要用 Node.js? 案例逐一介绍

    原文转自:http://blog.jobbole.com/53736/ 介绍 JavaScript 高涨的人气带来了很多变化,以至于如今使用其进行网络开发的形式也变得截然不同了.就如同在浏览器中一样, ...

  10. js模板引擎介绍搜集

    js模板引擎越来越多的得到应用,如今已经出现了几十种js模板引擎,国内各大互联网公司也都开发了自己的js模板引擎(淘宝的kissy template,腾讯的artTemplate,百度的baiduTe ...

随机推荐

  1. C++11,控制台输出的一段小程序。

    #include <iostream> // std::cout, std::boolalpha, std::noboolalpha int main () { bool b = true ...

  2. mongodb数据出现undefined如何查询

    某些字段出现undefined,该如何查询? 如下: db.getCollection('license').find({"holder_code":{$type:"un ...

  3. 手机阅读行业SWOT分析

    上个星期,在公司内部的分享活动上给童鞋们分享了手机阅读行业现状,小伙伴儿们嗷嗷待哺的眼神促使我把PPT转换为博客里的文字和图片,再一次更加深入地进入手机阅读. 通过SWOT分析分析我们能够对手机阅读行 ...

  4. 【iOS系列】- iOS吸附效果的实现 之 UICollectionView的使用全解

    [iOS系列]- iOS吸附效果的实现 之 UICollectionView的使用全解 UICollectionView可以做很多的布局,在iOS开发中较为重要,所以这里就以实例来讲解UICollec ...

  5. ASP.NET MVC3 自定义编辑模版

    在View中显示Model中的各字段,默认是使用htmlhelper的EditorFor方法,在界面上显示的文本框.而使用EditorTemplates可在View上为特定字段显示自定义的界面.比如购 ...

  6. Chapter1-data access reloaded:Entity Framework(下)

    1.4 Delving deep into object/relational differences 深入挖掘对象关系的不同 理解面向对象和关系世界的不同是重要的,因为他会影响你设计一个对象模型或者 ...

  7. Gson转换Json串为对象报java.lang.NoClassDefFoundError

    解决方法: 1.右键项目 ---> properties ----> java buildpath ---> order and export 2. 勾选 gson-x.x.x.ja ...

  8. 生成 hibernate 映射文件和实体类

    创建web工程,使用Hibernate的时候,在工程里一个一个创建实体类太麻烦,浪费时间,现在教大家如何用MyEclipse自动生成Hibernate映射文件及实体类 方法/步骤   创建数据库,创建 ...

  9. nextLine() 、nextInt()的跳过问题

    nextInt()  将输入的信息的下一个标记扫描为 int. nextLine() 此扫描器执行当前行,并返回跳过的输入信息. nextInt 会读取下面输入的 int类型的信息以回车作为结束,如果 ...

  10. wpa_supplicant - 强有力的终端 wifi 配置工具【转】

    本文转载自:http://rickgray.me/2015/08/03/useful-command-tool-for-wifi-connection.html 最近网购了一套Raspberry-Pi ...