使用set jquery和twig获取所选索引的id

时间:2015-10-22 07:44:18

标签: jquery symfony twig

我想使用jquery和函数集

从dropdownmenu列表中获取id
#create a new column with the price categories
df$PriceCat<-paste0("Price",findInterval(df$Price,c(0,500,1000,1500,2000)))
table(df[,c("OrderYear","PriceCat")])
#         PriceCat
#OrderYear Price1 Price2 Price3 Price4 
#     2012      1      1      0      0
#     2013      2      2      0      1
#     2014      2      1      1      0

但我希望使用此方法获取id

var c = document.getElementById("dropdown1");
var id= parseInt(c.selectedIndex) ;

但不起作用

实际上这是我真正的问题:我有一个从和实体

生成的drowpdown菜单列表
{% set id=parseInt(c.selectedIndex) %}

消息实体有许多字段,例如:id,message,name

enter image description here

所以在jquery中,我想得到所选索引的消息值

我在jquery中的代码如下:

->add(
            'predefinedMessage',
            'entity',
            array(
                'empty_value' => 'Ajouter un message Prédéfini',
                'class' => 'MyBundle:PredefinedMessage',
                'property' => 'name',
                'multiple' => false,
                'error_bubbling' => true,
                'required' => false,
                'query_builder' => function (EntityRepository $er) use ($user) {

                    return $er->createQueryBuilder('u')
                        ->where('u.user = :user')
                        ->setParameter('user', $user);

                },

            )

但总是出错,并且没有定义id。

对此问题有任何帮助

1 个答案:

答案 0 :(得分:0)

如评论中所述,从javascript获取值返回到twig模板是不可能的,因为正在呈现twig模板并将结果发送到客户端,然后,生成的javascript将是执行。

现在,如果您只需要显示选择框的初始值(页面加载时预先选择的值),您可以在twig中访问该值而无需使用javascript 。有关如何执行此操作,请参阅this问题。

如果您需要在用户选择不同的东西时动态更改所选值,则必须使用javascript或jquery,但是您无法将值传递回twig变量,您必须将其插入到某处使用jQuery的DOM。如果您希望动态更新,则需要将此代码置于“更改”状态。事件处理程序。

var selectBox = $("#id_of_your_select_box");
selectBox.change(function(){
    var selectedValue = selectBox.val();
    $("#id_of_where_the_value_is_displayed").text(selectedValue);
});