我正在使用jQuery AJAX将数据发送到控制器。然后,该数据用于对记录进行分级以便从DB进行编辑。如果请求它将数据从db加载到模态窗口进行编辑。数据在foreach循环中写入页面,如下所示:
<?php if(sizeof($menu)) : ?>
<?php foreach($menu as $item): ?>
<div class="menu_item grid_7">
<div class="menu_item_top grid_7">
<h3><?php echo $item->name; ?></h3>
</div><!-- menu_item_top -->
<p class="menu_item_text">
<?php echo $item->description; ?>
</p>
<p class="price"><?php echo '$'.$item->price; ?></p>
<?php if(isset($this->session->userdata['is_admin'])):?>
<div class="menu_item_admin grid_6">
<a class="edit_link" href="/admin/edit/wsrmenuitems/<?php echo $item->id;?>">Edit</a>
<a class="admin_Link" href="/admin/delete/<?php echo $item->id;?>">Delete</a>
<a class="logout" href="/login/logout/">Log Out</a>
</div><!-- end menu_item_admin -->
<?php endif;?>
</div><!-- end menu_item -->
<?php endforeach;?>
<?php else : ?>
<h2>No results to display</h2>
<?php endif; ?>
所以自然一切都是一样的。这在一个页面上工作正常,但是当在另一个加载不同菜单的页面上时,jQuery仅适用于foreach循环中的第一个项目。这是jQuery:
$('.edit-form-portlet').hide();
$('.edit_link').live("click",function(eve){
eve.preventDefault();
data = $(this).attr('href');
$.get(data, function(data) {
$('.edit-form-portlet').html(data);
$('.edit-form-portlet').dialog({
height:600,
width: 600,
modal: true
});
});
});
两个菜单页面之间的唯一区别是edit_link URI的第3段。一个是wsrmenuitems,一切都在该页面上运行。另一个是寿司,这是它只适用于foreach循环中的第一个项目。 ajax请求运行但我没有从db获得任何回复。所以我得到了一堆试图得到非对象错误的属性。