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

时间:2013-12-05 02:58:22

标签: javascript php jquery

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

它不起作用。有什么不对吗?

5 个答案:

答案 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方法;但是如你所愿,我为你描述了基础......