如何在javascript函数内部将javascript变量传递给php


How to pass javascript variable to php inside javascript function

我有一个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>