php foreach - >用js获取相应的数据

时间:2015-11-15 19:57:51

标签: php jquery

我有一个博客并从某个SQL数据库中获取数据。 我有一个问题,从foreach循环获取正确的数据,我不知道为什么。我会尝试解释。

对于每张图片,都有一个textarea,用户可以在其中发表评论。对于每个注释,我必须发送相应的id(ajax)以添加到数据库。

foreach($db->query("SELECT id, image FROM news") as $row)
{           
<a href='images/news/{$row['image']}'><img src='images/news/{$row['image']}'/></a>";

<div class="save_comment">

<table width="400" border="0" cellspacing="1" cellpadding="2">
                <tr>
                    <td>
                    <input type="text" class="_comment_id" name="id" value="<?php print_r($row['id'] );?>"  /> 
                    Comment:
                    <textarea  id="_comment_text" class="comment_area" name="comment_area" maxlength="400" cols="80" rows="8" ></textarea>
                    </td>
                </tr>
                <tr>
                    <td>
                    <a class="post_comment" href=".popupContainer">Post Comment</a>
                    </td>
                </tr>
           </table>

</div>
}

点击“发表评论”后,js-script将被初始化....

<script type="text/javascript">
jQuery(document).ready(function() {
$(".post_comment").leanModal({top : 200, overlay : 0.6, closeButton: ".modal_close" });
$(function(){

jQuery('.tabs .tab-links a').on('click', function(e)  {

    var currentAttrValue = jQuery(this).attr('href');
    jQuery('.tabs ' + currentAttrValue).show().siblings().hide();
    jQuery(this).parent('li').addClass('active').siblings().removeClass('active');
    e.preventDefault();
   });
 });
}); 
</script>

....并显示一个弹出容器(带有.popupContainer类的div),用户最终可以在其中提交评论。

<div class="popupContainer" style="display:none;">
    Your Name: <input type="text" class="_user_name" />
    Email:<input type="text" class="_comment_email" />
    <input type='button' class='_submit_comment' value='Speichern' >
</div>

通过提交此评论,初始化以下脚本,并且数据将由ajax发送。

<script type="text/javascript">
$("._submit_comment").click(function(){

var parentObj = $(this).closest('.save_comment');
var _comment_id = parentObj.find('._comment_id').val(); -> I don't get the correct id

所以这里开始出现问题。我只从foreach循环获得第一个id,但我需要为每个注释获取相应的id。任何人都可以帮助解决这个问题吗? 谢谢 米施

1 个答案:

答案 0 :(得分:0)

这部分是错误的恕我直言:

$(this).closest('.save_comment');

当您单击“发表评论”时,您应该设置一个JS变量,其ID可以存储在链接中,如:

<a class="post_comment" href=".popupContainer" data-idcomment="<?php print($row['id'] );?>">Post Comment</a>

并且

var _comment_id = null;
jQuery('.tabs .tab-links a').on('click', function(e)  {
    _comment_id = jQuery(this).data('idcomment'); 
    var currentAttrValue = jQuery(this).attr('href');
    jQuery('.tabs ' + currentAttrValue).show().siblings().hide();
    jQuery(this).parent('li').addClass('active').siblings().removeClass('active');
    e.preventDefault();
   });
 });
}); 

然后你可以使用_comment_id为你调用ajax