将URL传递给JS函数

时间:2011-06-24 04:10:01

标签: php jquery

我有一个PHP页面,我也使用jQuery UI功能。用户将项目从左侧面板拖动到右侧的框中。删除后会出现一个对话框。如果用户单击第一个按钮,他/她将被重定向到URL。我需要能够根据用户更改URL。

我可以将URL转换为var或$ _SESSION,但我无法弄清楚如何在JS函数中更改它?

这是DEMO(将项目放入框以获取对话框)。


更新:

以下是所有有效的建议,但是,我的问题是我在外部JS文件(dragdrop-client.js)中有大部分JS函数。

我已将新的var添加到我的主PHP文件

var endURL = "http://google.com";

但是如何使我的函数checkLaunchpad()使用它?

3 个答案:

答案 0 :(得分:2)

有许多不同的方法可以做到这一点,但通常很简单:

<script type="text/javascript">var myURL = '<?php echo $url; ?>'</script>

$ url是你希望他们去的网址(也许是'/boxes.php?uid='.$_SESSION['id'];?) 这将转化为:

<script type="text/javascript">var myURL = 'http://whatever.and.stuff'</script>

修改

您刚刚问过如何在外部JS页面上声明的函数使用变量。

好吧,幸运的是,JS在你声明变量时并不在意,只要它在你使用它之前有一些价值。并且,如果它没有值,那么它将提供undefined;。这意味着您可以声明依赖于全局变量的函数,这些函数不会存在于另外三个或几秒/几分钟/年/永久/无论如何。

此外,脚本标记在页面上越早,它将被评估得越早 - 第二个js文件加载时,第一个标记中声明的变量将存在。

所以,如果你想按预期完成上述工作,你有两个选择。

您可以将变量定义为页面正文中的第一个脚本标记(因此,它在checkLaunchpad之前定义。

<script type="text/javascript">var myURL = '<?php echo $url; ?>'</script>
<script type="text/javascript" src="path/to/js"></script>

或者,如果在加载正文之后才调用checkLaunchpad,则可以将定义放在脚本标记中!

答案 1 :(得分:1)

查找以下代码以将用户重定向到新页面

<script type="text/javascript">

var endURL = "http://google.com";

function checkLaunchpad(url) {    
     location.href=url;
     return false;      
}
</script>

<a href="javascript: void('0')" onclick="javascript: return checkLaunchpad(endURL);">Test</a>

以获取更多参考检查http://snook.ca/archives/javascript/global_variable

答案 2 :(得分:0)

我想将网址存储在隐藏字段中,如:

<input id="hidUrl" type="hidden" value="<?php echo $url ?>"/>

然后更改您的JavaScript,使其使用值:

window.location = $("#hidUrl").val();