我有一个PHP页面,我也使用jQuery UI功能。用户将项目从左侧面板拖动到右侧的框中。删除后会出现一个对话框。如果用户单击第一个按钮,他/她将被重定向到URL。我需要能够根据用户更改URL。
我可以将URL转换为var或$ _SESSION,但我无法弄清楚如何在JS函数中更改它?
这是DEMO(将项目放入框以获取对话框)。
更新:
以下是所有有效的建议,但是,我的问题是我在外部JS文件(dragdrop-client.js)中有大部分JS函数。
我已将新的var添加到我的主PHP文件
var endURL = "http://google.com";
但是如何使我的函数checkLaunchpad()使用它?
答案 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();