好的,我正在循环浏览我的新闻帖子以及您可以评论的每个帖子。因此,我为每个新闻发布构建了一个对话框模式(我认为这很愚蠢),但这是我可以保持 news_id 循环并将其传递到表单操作属性的唯一方法。
无论如何,希望这不是什么大不了的事,但是每当我单击评论链接(.comment)时,它都会打开所有重复的对话框模式,因为它是同一个类。如何使其仅打开具有与他们单击的评论链接相同的新闻 id 的对话框模式,以便我可以根据新闻 id 插入他们的评论?
这是我的新闻循环的 HTML(使用 CodeIgniter)
<div id="news">
<?php foreach($news_array as $news) { ?>
<div class="news_box">
<h3 align="right">Peanut - December 18, 2012</h3>
<p align="right"><?php if($admin) { echo anchor('admin/news/edit/'.$news->id, 'Edit').' | '.anchor('admin/news/delete/'.$news->id, 'Delete', array('onClick' => "return confirm('Are you sure you want to delete this post?')")); } ?></p>
<h2><?php echo $news->title; ?></h2>
<p><?php echo nl2br($news->body); ?></p>
<p align="right"><?php echo anchor('news/comment/'.$news->id, 'Comment', array('class' => 'comment', 'onclick' => 'return false')); ?></p>
<div class="comment-form" title="Comment">
<?php echo form_open('news/comment/'.$news->id, array('class' => 'form')); ?>
<fieldset>
<legend>Please Leave A Comment</legend>
<div class="row clearfix">
<div class="full control-groups">
<div class="clearfix">
<div class="form-status"></div>
<?php echo form_label('Comment', 'comment'); ?>
</div>
<?php echo form_textarea(array('name' => 'comment', 'id' => $news->id, 'maxlength' => 200, 'placeholder' => 'Please enter 5 - 200 characters.', 'value' => set_value('comment'))); ?>
</div>
</div>
</fieldset>
<? echo form_close(); ?>
</div>
<hr color="orange" />
</div>
<?php } ?>
</div>
然后这是我的 Javascript(只显示重要的东西,所以它不会全部混在一起):
$('.comment-form').dialog({
autoOpen: false,
height: 380,
width: 900,
modal: true,
buttons: {
"Comment": function() {
form = $('.form');
$.ajax({
type: 'POST',
url: form.attr('action'),
data: form.serialize(),
type: (form.attr('method'))
});
},
Cancel: function() {
$(this).dialog('close');
}
}
});
$('.comment').click(function() {
$(this).closest('.comment').find('.comment-form').dialog('open');
});
感谢您的任何帮助!