使用JQUERY修改url_for,一个用于Symfony的href

时间:2011-09-06 10:18:36

标签: php javascript jquery html symfony1

我有:

<span id="test"><a href="<?php echo url_for('mymodule/myaction?id='. $id) ?>">link1</a></span> <br />

<span id="test"><a href="<?php echo url_for('mymodule/myaction?id=') ?>" $id>link2</a></span>

我必须使用url_for生成url。如果我点击:

,我想用javascript(jquery)修改$ id
<span class="click" id=1>click one</span> <br />
<span class="click" id=2>click two</span> <br />
<span class="click" id=3>click three</span> <br />

如果我点击“点击一个”,我想链接:

<span id="test"><a href="<?php echo url_for('mymodule/myaction?id=1') ?>">link1</a></span>

OR

<span id="test"><a href="<?php echo url_for('mymodule/myaction?id=') ?>"1>link2</a></span>

LIVE: http://jsfiddle.net/wtAbp/

2 个答案:

答案 0 :(得分:1)

您可以将每个网址放在每个范围的ref属性中,如下所示:

<span class="click" id=1 rel="<?php echo url_for('mymodule/myaction?id=1') ?>">click one</span>
<span class="click" id=2 rel="<?php echo url_for('mymodule/myaction?id=2') ?>">click two</span>
<span class="click" id=3 rel="<?php echo url_for('mymodule/myaction?id=3') ?>">click three</span>

然后在您的点击事件中(或您选择的任何方式),将目标的href替换为点击元素的rel值。

$('.click').unbind('click').click(function() {
  $('a#your_id').attr('href', $(this).attr('rel'));
});

答案 1 :(得分:1)

您的代码<?php echo url_for('mymodule/myaction?id=1') ?>在服务器端进行解释。所以你不能在客户端修改它。

只需将"<?php echo url_for('mymodule/myaction?id=') ?>"放入href中,不带id,然后添加动态ID:

类似的东西:

$(".click").live('click', function() {    
    $("a").attr('href',$("a").attr('href')+$(this).attr('id'));
});