aJax可以实现两个js文件传值吗?
2个回答
展开全部
给楼主给例子:
前台:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<script src="java.inc.bag/jquery-1.9.1.min.js"></script>
<body>
<input type="text" id="input"><input type="button" id="btn" value="btn" onClick="post_input()">
</body>
</html>
<script>
function post_input(){
$.ajax({
url:"backstage.php",
type:"POST",
dataType:"json",
data:{
name:$("#input").val(),
},
error: function(XMLHttpRequest, textStatus, errorThrown){alert(textStatus);},
success: function(backdata){
alert(backdata.getvalue);
}
});
}
</script>
后台:
<?php
if(isset($_POST['name'])){
$backValue['getvalue'] = "get ".$_POST['name'];
echo json_encode($backValue);
}
ajax那里就不说了,有问题楼主再问
说一下后台这里
if段,不解释,往下
$backValue这是一个json型的对象,这个取决于前台递交时的返回数据方式dataType,如果想返回多个独立数据,那么就用json形式的(就像上面代码写的),如果只要一段字符串或者段html代码,那么dataType就可以不写,默认格式就行。
还有显示,光一个$backValue是不足以返回数据的,所以我们用echo,这里跟上面一样牵扯到返回类型的问题。如果是json格式就用echo json_encode($backValue);如果只是字符串就直接echo $backValue就行。
至于前台怎么应用返回值,主要是ajax中那个success变量指向的函数中调用的,看看例子吧,我在前台还加了一个error的报错
说的比价凌乱,楼主有问题再问,还有代码是直接在页面上手打的,可能会有错误
追问
谢谢你的回答~ 请问,ajax的url可以是.js文件吗?
如果想在两个js文件传要用什么方法接受呢?$_POST方法js貌似不能用。
还是说要在js文件里嵌php呢?
求大神指教
追答
首先楼主要明白一个概念,javascript脚本只能在客户端的浏览器上运行,不能在服务器端运行。php则相反,只能在服务器端运行,不能在客户端运行,就算直接让浏览器运行php代码,也只是将代码直接输出,并不会做任何解释。
记住,所有的php脚本都是现在服务器端被解释成HTML或js语言的代码,然后再传到客户的浏览器上。不光php,asp和jsp都是这样。
所以js文件中是不可能嵌入php代码的,会报错。当然可以用php文件在.php页面中输出js代码,然后由浏览器执行执行。如:js实现的301页面跳转;(如果这个需要,可你单给你这里就不写了)
而ajax是实现,在不刷新页面的情况下,浏览器与服务器交换数据的一种技术。你将提交地址写成js文件,即使能提交成功,服务器端也不会做任何处理,直接将js返回。当然可以通过ajax动态加载js文件以提高页面加载速度。这个我觉得跟楼主你说的不一样。
如果在同一页面下,两个js根本不涉及通信的问题,直接调用即可。如果在不同页面下,说白了就是想让不同浏览器实现实时通信(类似聊天室功能),那就涉及WebSocket功能了,跟ajax基本就不是一回事了。
总而言之通过ajax进行不同客户端上js文件中的数据是不可能得,无论如何都得经过服务器,就算是WebSocket也一样。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询