繁体   English   中英

我应该如何基于url中的参数加载js函数?

[英]How should I load a js-function based on parameter in url?

* 处理此问题的正确方法是什么? *

我想做什么:假设我有一个类似的网址:

http://www.domain.com/parties/

此链接显示所有各方。 每一方都是可单击的,如果用户单击其中之一(ID为54),则此页面将显示:

http://www.domain.com/party/54

将显示特定方54的页面。

当我致电http://www.domain.com/party{id} ,我会包含一个javascript文件。 在这个js文件( party.js )中,我有一个函数loadParty(party_id)

我想加载特定的js函数,以在调用http://www.domain.com/party/54时加载实际的聚会(54)(我必须为此使用javascript(我必须获取有关屏幕分辨率的信息) )。

我应该怎么办?

  1. var party_id = <?php echo $get['id'];>;
  2. 使用ajax调用php,该php返回$_GET['id'] (并将其放入party_id-js-变量中)?

    然后调用loadParty(party_id);

还有其他想法吗?

(如果重要,我正在使用jQuery / CodeIgniter(我认为没有))

UPDATE

我只是在做<?php echo $get['id'];>; 只是为了展示我想要的原理。 我保证,我永远不会那样做! :-)

更相关的代码将类似于

<?php
if (isset($_GET['id'])) {
    $id = intval($_GET['id']);
    $party = new Party();
    $party_id = $party->doPartyExists($id); //Returns 0 at false
    if (intval($party_id) === 0) {
        throw new Exception('this is not a party');
    }
}
?>

然后将$party_id放入js ...

首先这样做-

<?php

    $id = $_REQUEST['id'];

?>

然后像这样调用函数

loadParty('<?php echo $id ?>');

无需ajax调用。 顺便说一句,您可以在命中URL时将两个代码段写在您加载的同一个文件中。

@notsobestprogrammerintheword :)

您的方法很好,但是我担心$ _GET中的键:它可能不是'id',而是'party',但取决于路由配置。 并将值从$ _GET强制转换为INT:使您的站点不受XSS攻击!

var party_id = '<?php echo isset($_GET["id"]) ? (INT) $_GET["id"]: 0;>';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM