在createLink中插入javascript变量

时间:2014-03-14 17:26:03

标签: javascript jquery grails

我想将变量orderSlipID的值传递给此createLink。

function showOrderedItems() {       
    $.ajax({
        url: '${createLink(action:'listOrderedMenu', id:orderSlipID)}', 
        success: function(data) {
          $('#orderedlist').html(data);                                                     
        }
    });
};      

此orderSlipID来自单独的GSP。我想将createLink的id设置为我单击的按钮的id。

这是我的另一个GSP:

<g:each  in="${orderSlipInstanceList}" var="os">
    <div class="table" data-slip="${os.id}">${os.tableNumber}</div>
</g:each>
<script>
    $('.table').click(function(){
    orderSlipID = parseInt($(this).attr('data-slip'));
    showOrderedItems(); 
 });
</script>

因此,当我单击一个表时,它会将orderedSlip的id保存到orderSlipID,并将其传递给createLink以显示#orderedlist的新内容。

2 个答案:

答案 0 :(得分:0)

没关系,我通过为每个按钮分配一个网址来解决问题

     <g:each  in="${orderSlipInstanceList}" var="os">
       <div class="table" data-url="${createLink(action: 'listOrderedMenu', id:"${os.id}")}">${os.tableNumber}</div>
     </g:each>

并使用url变量:

  var urlSlip = '${createLink(action:'listOrderedMenu', id:11)}';

并将$ .ajax网址更改为

  url:urlSlip

答案 1 :(得分:0)

只需将jQuery方法中的orderSlipID作为参数传递

<script>
    $('.table').click(function(){
        var orderSlipID = parseInt($(this).attr('data-slip'));
        showOrderedItems(orderSlipID);
    });
</script>

并更改ajax

function showOrderedItems(orderSlipID) {
    $.ajax({
        url: '${createLink(action:'listOrderedMenu')}', 
        data: {id: orderSlipID},
        success: function(data) {
            $('#orderedlist').html(data);                                                     
        }
    });
};