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

时间:2014-03-13 09:27:38

标签: javascript php

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

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

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,返回$_GET['id']的值(并将其放入party_id - js - 变量中)?

    然后拨打 loadParty(party_id);

  3. 还有其他想法吗?

    (如果重要的话,我正在使用jQuery / CodeIgniter(我不这么认为))

    更新

    我只是在做<?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 ...

2 个答案:

答案 0 :(得分:1)

首先  这样做 -

<?php

    $id = $_REQUEST['id'];

?>

然后调用这样的函数 -

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

不需要ajax调用。顺便说一句,你可以在同一个文件中编写两段代码,当你点击网址时你会加载它。

答案 1 :(得分:1)

@notsobestprogrammerintheword :)

你的做法很好,但我对$ _GET中的密钥感到担心:它可能不是&#39; id&#39;,但是&#39; party&#39;但这取决于路由配置。 请将$ _GET的值转换为INT:让您的站点免受XSS攻击!

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