我有一个js文件。有可能在js文件里面做一个php编码吗?在我的标题中,我包含了我的js文件。
<script type="text/javascript" src="js/playthis.js"></script>
现在在我的jsfile中:
function getURL(e) {
alert(e+' javascript varibale');
<?php $url; ?> = e;
alert('<?php echo $url; ?>'+' php variable');
}
在我的php文件中
<?php $url = "www.google.com"; ?>
<a href="#" onclick="getURL('<?php print $url; ?>');" class="title">
它不起作用。有什么不对吗?
答案 0 :(得分:1)
不可能在JS文件中包含PHP代码。
您可以对PHP文件进行$ .ajax调用,该文件可以处理所需变量的设置。
希望这有帮助。
答案 1 :(得分:1)
有几种方法可以解决这个问题。
1 - 让php解析.js文件。您需要更改您的网络服务器配置才能执行此操作 2 - 使用AJAX与php交互 3 - 让php在body onload事件中渲染一个额外的JS片段,该事件设置了这个JS参数(但仍然将库作为一个单独的文件)。
答案 2 :(得分:1)
这不是必需的,当你在php页面中的onclick属性中打印带print $url
的url作为getURL函数的参数时,这意味着将发送$url
的值在js
文件中使用名称为getURL的函数...
所以,你必须写:
alert(e);
如果你只是问,就像其他朋友告诉的那样,你应该使用Ajax ......
当你将一个变量作为一个参数分配给一个函数时,就像getURL(e)
一样,你调用函数的时间,getURL('print $url")
你必须设置该变量的值,所以程序设置了值您将函数赋予默认变量... e = $url
答案 3 :(得分:1)
您可以将.js文件更改为.php文件并一起使用javascript和php
更改此
<script type="text/javascript" src="js/playthis.js"></script>
到这个
<script type="text/javascript" src="js/playthis.php"></script>
答案 4 :(得分:1)
你必须在某些浏览器和I.E中为Ajax事务创建一个名为XMLHTTP REQUEST的新对象,这基本上是ActiveXObject;
这个对象属于window对象;
所以第一步是:
if ( window.XMLHttpRequest ) {
XHR = new XMLHttpRequest();
}
else if ( window.ActiveXObject ) {
XHR = new ActiveXObject("Microsoft.XMLHTTP");
}
else {
alert("You Cant see because Your Browser Don't Support Ajax!!!\n Change Your Browser To A Modern One");
}
现在,你有正确的对象
在下一步中,有一些XHR对象的发送和接收方法你应该知道:
1/ onreadystatechange
2/readyState
3/status
4/open
5/send
6/setRequestHeader
首先打开与open
:
XHR.open("POST", url, true);
如您所知,post是发送方法,现在您必须设置要将信息发送到的网址,例如,如果您要将变量发送到test.php
,则网址为{ {1}} ...
true表示请求将异步发送..
下一步是设置您的请求标头,因为您使用test.php
方法,在post
方法中您不需要这样:
get
接下来是使用此格式 XHR.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
的发送方法发送请求:
send(name, value)
第一个字符串'value ='是你将在php中获得的$ _POST的索引,因此在你的php代码中,如果你将名字设置为'name =',你将用XHR.send('value=' + value);
给出它你在PHP中有$_POST['value']
,请注意在Ajax发送参数中你必须在数据名后面使用$_POST['name']
,但是在php中=
没有使用...
发送请求后;现在是时候回应:
=
XHR.readyState == 4和XHR.status == 200表示每件事都是O.K。
这是您希望的Ajax的基础知识;但是Ajax有很多信息,要么你可以使用简单灵活的jQuery Ajax方法;但是如你所愿,我为你描述了基础......