* 处理此问题的正确方法是什么? *
我想做什么: 假设我有一个网址:
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(我必须检索有关屏幕分辨率的信息等))。
<?php echo $get['id'];>;
使用ajax调用php,返回$_GET['id']
的值(并将其放入party_id - js - 变量中)?
然后拨打 loadParty(party_id);
还有其他想法吗?
(如果重要的话,我正在使用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 ...
答案 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;>';