我在Codeigniter中使用PHP并且更新鲜。我在最近2天遇到了问题。
我有页面显示从数据库中提取并使用循环显示的事件列表。我成功地做到了。现在我想给出一个选项来编辑或删除应该进行db更改的单个事件。为此,我使用2个按钮;编辑和删除。注意所有都在一个循环中,因此在每个事件(项目)中重复相同的按钮。点击一个按钮后,它会显示一个模态。例如,当单击“删除”按钮时,它会显示一个要求确认删除的模式。该模态中的DELETE按钮提交我的表单并调用应该删除相应数据库条目的控制器函数。
如何识别该特定项目的ID,以便我可以删除或更新它?我总是得到第一个项目的ID。我引用了这个:passing php variable to modal window with click function
但我无法将这些与我的问题联系起来
以下是我的观点:
<ul class="timeline">
<?php
if(isset($eventlist)){
foreach ($eventlist as $events) {
<li class="yellow timeline-noline' >
<div class="timeline-time">
<span class="date" id="date" >
<?php if(!empty($events->event_date)){echo $events- >event_date ;} ?> </span>
<span class="time" id="time" >
<?php if(!empty($events->event_time)){echo $events->event_time ;}?> </span>
</div>
<div class="timeline-icon">
<i class="icon-trophy" style="margin-top:12px;"></i>
</div>
<div class="timeline-body">
<div>
<button type="button" title="Remove" id="remove" name="remove" href="#portlet-remove" data-toggle="modal" style="float:right;background-color: transparent;border: 0px;" ><i class="fa fa-trash-o"></i></button>
<button type="button" title="edit" id="edit" name="edit" href="#portlet-edit" data-toggle="modal"style="float:right;background-color: transparent;border: 0px;" ><i class="fa fa-pencil-square-o"></i></button>
<h2 id="title" ><?php if(!empty($events->event_title)){echo $events->event_title ;}?></h2>
</div>
<div class="timeline-content">
<img class="timeline-img pull-left" src="<?php echo $this->config->base_url(); ?>assets/admin/pages/media/blog/2.jpg" alt="">
<span id="desc" > <?php if(!empty($events->event_desc)){echo $events->event_desc ;}?> </span>
</div>
<div class="timeline-footer">
<a href="javascript:;" class="nav-link pull-right">
<!--Read more <i class="m-icon-swapright m-icon-white"></i> -->
</a>
</div>
</div>
</li>
<?php
} } ?>
</ul>
答案 0 :(得分:2)
我通过使用以下代码更新来实现它:
function showmodal(id)
{
var eventid=id;
document.getElementById("hiddenevent").value = eventid;
$('#portlet-remove').modal('show');
}
并在我的模态中添加了一个隐藏的输入
<input type="hidden" name="hiddenevent" id="hiddenevent">
更新了我的删除&#39;按钮为
<button type="button" title="Remove" id="remove" name="remove" onClick="showmodal(<?php echo $events->event_id;?>)" href="" data-toggle="modal" style="float:right;background-color: transparent;border: 0px;" ><i class="fa fa-trash-o"></i></button>
答案 1 :(得分:1)
在您的标记ID按钮重复。它会导致html验证错误,如果您尝试访问带ID的按钮,它将始终指向具有相应ID的第一个元素。
您可以在删除按钮中使用用户定义的属性,如下所示,也可以使用class而不是ID。
<button type="button" title="Remove" rel="id for identifying element $i " class="remove" name="remove" href="#portlet-remove" data-toggle="modal" style="float:right;background-color: transparent;border: 0px;" ><i class="fa fa-trash-o"></i></button>
Javascript喜欢这个
$('body').on('click','.remove',function(){
var idUnique = $(this).attr('rel');
//You could pass this idUnique to controller for deletion.
//Assign the idUnique to Hidden field inside modal body.
$('#selectedID').val(idUnique );
});
答案 2 :(得分:0)
我必须清理你的代码。
echo "<ul class='timeline'>\n";
$i=0 ; $k=0;
if (isset($eventlist)) {
foreach ($eventlist as $events) {
$numb = count($eventlist);
if($i == 6) {
$i=0;
}
if ($k == $numb-1) {
echo "<li class='".$class_array[$i]." timeline-noline' >\n";
} else {
echo "<li class='".$class_array[$i]."'>\n";
}
echo "<div class='timeline-time'>\n";
echo "<span id='date' class='date'>\n";
if (!empty($events->event_date)) {
echo $events->event_date;
}
echo "</span>\n";
echo "<span class='time' id='time'>\n";
if (!empty($events->event_time)) {
echo $events->event_time;
}
echo "</span>\n";
echo "</div>\n";
echo "<div class='timeline-icon'>\n";
echo "<i class='".$icon_array[$i]."' style='margin-top:12px;'></i>\n";
echo "</div>\n";
echo "<div class='timeline-body'>\n";
echo "<div>\n";
echo "<button type='button' title='Remove' id='remove' name='remove' href='#portlet-remove' data-toggle='modal' style='float:right;background-color: transparent;border: 0px;'><i class='fa fa-trash-o'></i></button>\n";
echo "<button type='button' title='edit' id='edit' name='edit' href='#portlet-edit' data-toggle='modal' style='float:right;background-color: transparent;border: 0px;'><i class='fa fa-pencil-square-o'></i></button>\n";
echo "<h2 id='title' >\n";
if (!empty($events->event_title)) {
echo $events->event_title;
}
echo "</h2>\n";
echo "</div>\n";
echo "<div class='timeline-content'>\n";
echo "<img class='timeline-img pull-left' src='".$this->config->base_url()."assets/admin/pages/media/blog/2.jpg' alt=''>\n";
echo "<span id='desc'>\n";
if (!empty($events->event_desc)) {
echo $events->event_desc;
}
echo "</span>\n";
echo "</div>\n";
echo "<div class='timeline-footer'>\n";
echo "<a href='javascript:;' class='nav-link pull-right'>\n";
echo "<!--Read more <i class='m-icon-swapright m-icon-white'></i> -->\n";
echo "</a>\n";
echo "</div>\n";
echo "</div>\n";
echo "</li>\n";
$i++; $k++;
}
}
echo "</ul>\n";
你和#34;之间有一个巨大的空白区域?&#34;和&#34;&gt;&#34;在14-15线。
您似乎正在尝试使用 foreach -type循环为类型循环创建。当您知道循环运行的次数时,将使用 for 。 foreach 将循环遍历数组,直到数组为空。如果您想继续使用foreach,那么您没有理由使用这些
if($i == 6) { }
$i=0; $k=0;
$class_array[$i]
$icon_array[$i]
$i++; $k++;
我很确定这......
echo $events->event_desc;
......不行,但由于我不知道你想要完成什么,我不会再说什么了。