0

我有这个代码..但是有一个小问题..当我显示隐藏的 tr 时,我想获取有关每个模块的一些信息..我将从页面 {modules/$moduleid} 获取信息..我知道如何使用ajax .. 但我的问题是如何在 javascript 代码中使用变量 {$module.id} 为其提供信息页面的 url !

这是我的代码:

<script type="text/javascript">
$(document).ready(function(){

$('.subjects').click(function(){  
 var $tr = $(this).closest('tr');
$tr.nextUntil('.module-row').fadeIn(2000);
});

 $('.result').click(function(){  
 $(this).fadeOut(2000);
});
});
</script>
<br /><br /><table width="100%">
<tr class="tbl">
<td colspan="6">{$ci->lang->line('modules_list')}</td>
</tr><tr>
<td class="tbl1" style="width: 8%;">{$ci->lang->line('number')}</td>
<td class="tbl2" style="width: 28%;">{$ci->lang->line('title')}</td>
<td class="tbl1" style="width: 10%;">{$ci->lang->line('add_subject')}</td>
<td class="tbl2" style="width: 10%;">{$ci->lang->line('subjects_list')}</td>
<td class="tbl1" style="width: 8%;">{$ci->lang->line('edit')}</td>
<td class="tbl2" style="width: 8%;">{$ci->lang->line('delete')}</td>
</tr>
{foreach $modules_list as $module}
<tr class="module-row">
<td class="tbl1" style="width: 8%;">{$module.number}</td>
<td class="tbl2" style="width: 28%;">{$module.title}</td>
<td class="tbl1" style="width: 10%;"><a href="{base_url('admincp/subjects/add')}/{$module.id}"><img src="{base_url('images/icons/add.png')}" /></a></td>
<td class="tbl2" style="width: 10%;"><img style="cursor: url;" class="subjects" src="{base_url('images/icons/list.png')}" /></td>
<td class="tbl1" style="width: 8%;"><a href="{base_url('admincp/modules/edit')}/{$module.number}"><img src="{base_url('images/icons/edit.png')}" /></a></td>
<td class="tbl2" style="width: 8%;"><a onclick="return confirm('{$ci->lang->line('delete_confirm_msg')}')" href="{base_url('admincp/modules/delete')}/{$module.number}"><img src="{base_url('images/icons/delete.gif')}" /></a></td>
</tr>
<tr class="result" style="display:none">
<td colspan="7">
RESULT
</td>
</tr>
{/foreach}
</table>
</div>
</body>
</html>

例如,这是我用来获取每个模块主题的代码:

 $.ajax({
   url: "../subjects/module_select/$module_id",
    type : "POST",
    data : dataAll,
    dataType :"html",
    success : function(msg){
       $('#select_subject').fadeIn(1000);
         $('#select_subject').html(msg)

    }

现在我如何每次在循环中分配 $module_id !

4

1 回答 1

0

我认为不在表中包含 id 是错误的。在这里,我将 $module_id 添加到隐藏div 的 data-id 属性中。然后将此 id 分配给moduleId,然后您可以在 JS 代码中以任何您喜欢的方式使用它。

#module_id { display: none; }

<div id="module_id" data-id="$module.id"></div>

var moduleId = $('#module_id').data('id');

$.ajax({
  url: "../subjects/module_select/" + moduleId
});

更好的做法是将它添加到data-id捕获点击事件的元素的属性中,无论是什么。

<tr data-id="$module.id" class="module-row">

$(document).on('click', '.module-row', function () {
  var moduleId = $(this).data('id');
  // Do ajax
});
于 2013-09-17T10:06:41.860 回答