连接查询与每个PHP回声

时间:2016-04-17 12:27:04

标签: javascript php jquery mysql ajax

如果我有

$logger = $_SESSION['logger'];
$postquery = $con->query("SELECT * FROM posts ORDER BY id DESC LIMIT 5");

while($row = $postquery->fetch_object()){

    $posts[] = $row;


}

然后:

    foreach($posts as $post):?>
    <div class="post"><?php 
echo '<div class="text">'.$post->text.'</div><textarea id='comment'></textarea>';

现在jquery和ajax:

<script type="text/javascript">
        $(document).ready(function() {
            $('#comment').keypress(function(event) {
                var key = (event.keyCode ? event.keyCode : event.which);
                if (key == 13) {
                    var comment = $('#comment').val();      
                    var postid = '<?php echo $post->id; ?>';
                    var from = '<?php echo $logger; ?>';

                    $.ajax({
                        method: "POST",
                        url: "intodb.php",
                        data: {c: comment, p: postid, f: from},
                        success: function(status) {

                            $('#comment').val('');

                        }

                    });
                    };
                }); 

        });
    </script>

在intodb.php里面:

$c =$_POST['comment'];
$p =$_POST['postid'];
$f =$_POST['from'];
$insert = "INSERT INTO comment (id, comment, from, for) VALUES ('','$c','$f','$p')";
if(mysqli_query($con,$insert)){
     echo "commented....";
}

现在我有问题,jquery只使用数据库的最后输出作为值... 我在这里输出了5个帖子,如果我评论第一个第二个第三或第四个。插件在每个地方都是无处不在的,因为我只在第五篇评论。 此外,我已经使用类重写了js,但是当我将其更改为class时:

$('.comment')  AND <textarea class='comment'>

我的剧本不起作用......有人可以帮助我,我试着这样做3天......如果你可以帮助我先尝试一下你自己,因为我问了几次问题在这里,答案是添加无关紧要的东西......我查了许多其他问题和答案,但似乎它对我不起作用....

我在每个脚本的每个位置都有这个问题,例如,如果我从数据库中获取的产品很少,并且在悬停时我需要显示一些文本。它仅适用于其中一个......

更新:在这张照片上我有回复btn并点击textarea应该看到..它仅适用于从数据库的第一次获取...在其他js代码不起作用...为什么? enter image description here

1 个答案:

答案 0 :(得分:0)

var postid = '<?php echo $post->id; ?>';
var from = '<?php echo $logger; ?>';

这很正常。你的postid永远是一个价值。你需要遍历你的帖子并用它制作一个javascript数组。

虽然做这件事是不好的做法。

您应该使用数据库ID引用您的html id。

想象一下你有类似的东西

<div id="my-post-1" class="post">Some Text</div>
<div id="my-post-3" class="post">Some Text Again</div>
<div id="my-post-5" class="post">Some Text Again</div>

现在,您可以在数据库和客户端之间进行参考,一切都变得更加轻松

$('.post').click(function() {
  var postid = this.id.split('-')[2]
})

我对jquery有点生疏,但这应该有帮助