我有一个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">
它不起作用。有什么问题吗?
在某些浏览器中,您必须为Ajax事务创建一个名为XMLHTTPREQUEST的新对象,而在IE中,这基本上就是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是一种发送方法,现在你必须设置你想将信息发送到的url,例如,如果你想将变量发送到test.php
,那么url就是test.php
true表示请求将异步发送。。接下来是设置您的请求头,因为您使用的是post
方法,在get
方法中您不需要这个:
XHR.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
接下来是用发送方法发送请求,格式为send(name, value)
:
XHR.send('value=' + value);
第一个字符串'value='是您将在php中获得的$_POST的索引,因此在您的php代码中,您将使用$_POST['value']
给出该索引,如果您将名称设置为'name=',则在php中您有$_POST['name']
,请注意,在Ajax发送参数中,您必须在数据名称后使用=
,但在php中不使用=
。。。在您发送请求之后;是时候管理响应了:
XHR.onreadystatechange = function() {
if ( XHR.readyState == 4 && XHR.status == 200 ) {
document.getElementById('your target element for show result').innerHTML == XHR.responseText;
}
}
XHR.readyState==4,XHR.status==200表示一切正常
这是您所希望的Ajax的基础;但是Ajax的信息太多了,您可以使用简单灵活的jQueryAjax方法;但正如你所希望的,我为你描述了基本的。。。
不可能在JS文件中包含PHP代码。
您可以对PHP文件进行$.ajax调用,该文件可以处理所需变量的设置。
希望这能有所帮助。
有几种方法可以处理此问题。
1-通过php解析.js文件。为此,您需要更改Web服务器配置
2-使用AJAX与php进行交互
3-让php在设置这个JS参数的body onload事件中呈现一个额外的JS片段(但仍然将库作为一个单独的文件)。
这是不必要的,
当您在php页面内的onclick属性中打印带有print $url
的url作为getURL函数的参数时,这意味着$url
的值将被发送到js
文件中名为getURL的函数
所以,你必须写:
alert(e);
如果你只是问,正如其他朋友所说,你应该使用Ajax来实现这一点
当你把一个变量作为参数分配给一个函数时,就像getURL(e)
一样,你调用函数的时间,getURL('print $url")
,你必须设置该变量的值,所以,程序会把你给函数的值设置为默认变量。。。e = $url
您可以将.js文件更改为.php文件,并与javascript和php一起使用
更改此
<script type="text/javascript" src="js/playthis.js"></script>
到这个
<script type="text/javascript" src="js/playthis.php"></script>