Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用AJAX更新动态网页_Javascript_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Javascript 使用AJAX更新动态网页

Javascript 使用AJAX更新动态网页,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我制作了一个包含项目的网页,每个项目都包含一个文件列表。所有这些信息都是从MySQL数据库获取的。我已经实现了一个功能,允许用户对每个文件发表评论,并回复彼此的评论。我有一个名为“PlaceComments”的php函数,它递归地为下面显示的每个文件放置注释 这将对每个文件执行,并使用while循环和一些回显html代码的语句以类似方式替换每个文件 然而,我遇到的问题是使用AJAX在不刷新页面的情况下发布评论。由于每个文件id不同,我必须用特定的文件id更新每个选择器,并为每个文件再次运行pla

我制作了一个包含项目的网页,每个项目都包含一个文件列表。所有这些信息都是从MySQL数据库获取的。我已经实现了一个功能,允许用户对每个文件发表评论,并回复彼此的评论。我有一个名为“PlaceComments”的php函数,它递归地为下面显示的每个文件放置注释

这将对每个文件执行,并使用while循环和一些回显html代码的语句以类似方式替换每个文件

然而,我遇到的问题是使用AJAX在不刷新页面的情况下发布评论。由于每个文件id不同,我必须用特定的文件id更新每个选择器,并为每个文件再次运行placeComments

然而,我不知道如何做到这一点。每次我提交评论时,我都可以通过AJAX更新我的数据库

我知道您可以执行以下操作,它将使用id“id”更新任何选择器:

但我不确定如何对每个文件id迭代执行此操作,其中每个文件id都是一个php变量? 是否有一种方法可以通过PHP与JS通信,以便它更新注释 对于所有文件ID?如果是,怎么做

我意识到这是一个糟糕的设计,但我想这样做,而不是从头开始我的项目

放置注释功能:

     function placeComments($mysqli, $parentId, $fileId) {
            $sql = "SELECT * FROM Comments WHERE parent = $parentId AND file = $fileId ORDER BY UNIX_TIMESTAMP(date) ASC";

            $comments = $mysqli->query($sql);
            while($comment = $comments->fetch_assoc())
            {
                echo '
                <ul class="comments">
                    <li class="clearfix">
                        <div class="post-comments">
                            <p class="meta"> '. $comment['date'] .' <a href="#">'. $comment['username'] .'</a> says : <i class="pull-right">
                            <p>'
                            .
                            $comment['content']
                            .

                            '</i></p><br><br>';

                echo '<div class = "col-sm-12 reply panel-group">';
                echo '<div class="panel panel-default">';
                echo '<p><a data-toggle="collapse" href="#'. $comment[
                    'file'] . '-' . $comment['id'] . '"> Reply </a></p>';
                echo '<div id="'. $comment['file'] . '-' . $comment['id'] .'" class="panel-collapse collapse">';
                echo '<div class="panel-body">';


                if(isset($_POST['submitComment-' . $comment['file'] . '-' . $comment['id']]))
                {
                    $user = $_POST['username'];
                    $content = $_POST['content'];
                    $fileId = $_POST['id'];
                    $parent = $_POST['parent'];
                    $date = date('Y-m-d H:i:s', time());

                    filterComment($mysqli, $fileId, $user, $parent, $content, $date);
                }   

                echo '<form method="post" class="form-horizontal" id="commentForm" role="form"> 
                    <div class="form-group">
                        <div class="col-sm-10 form">
                        <h5><b> Name: <b></h5>
                        </div>
                        <div class="col-sm-10 form">
                          <textarea class="form-control" name="username" id="username" rows="1"></textarea>
                        </div>
                        <div class="col-sm-10 form">
                        <h5><b> Reply: <b></h5>
                        </div>
                        <div class="col-sm-10 form">
                          <textarea class="form-control" name="content" id="content" rows="3"></textarea>
                        </div>
                        <div>
                            <input class = "form-control" type = "hidden" value = '. $comment['file'] . ' name = "id" id = "id" />
                        </div>
                        <div>
                            <input class = "form-control" type = "hidden" value = '. $comment['id'] . ' name = "parent" id = "parent" />
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="col-sm-offset-2 col-sm-10 form">                    
                            <button class="btn btn-success btn-circle text-uppercase" type="submit" id="submitComment" name = "submitComment-'. $comment['file'] .'-' . $comment['id'] . '"><span class="glyphicon glyphicon-send"></span> Reply </button>
                        </div>
                    </div>            
                </form>';

                echo '</div>';
                echo '</div>';
                echo '</div>';
                echo '</div><br><br>';
                placeComments($mysqli, $comment['id'], $comment['file']);
                echo '</div>';
                echo '</li>';



                echo '</ul>';
            }

            $comments->free();


        }
函数placeComments($mysqli、$parentId、$fileId){
$sql=“从注释中选择*,其中parent=$parentId和file=$fileId ORDER BY UNIX_TIMESTAMP(date)ASC”;
$comments=$mysqli->query($sql);
而($comment=$comments->fetch_assoc())
{
回声'
  • 。$comment['date']表示: " . $comment['content'] . “



    ”; 回声'; 回声'; 回声“

    ”; 回声'; 回声'; 如果(isset($_POST['submitComment-'.$comment['file'..-'.$comment['id']])) { $user=$_POST['username']; $content=$_POST['content']; $fileId=$\u POST['id']; $parent=$_POST['parent']; $date=date('Y-m-dh:i:s',time()); filterComment($mysqli、$fileId、$user、$parent、$content、$date); } 回声' 姓名: 答复: 回复 '; 回声'; 回声'; 回声'; 回音“

    ”; placeComments($mysqli,$comment['id',$comment['file']); 回声'; 回音“
  • ”; 回声“
”; } $comments->free(); }
我会对你说实话。我不明白你想要完成什么。根据我的理解,无论你想在哪里显示评论,都可以称之为ajax功能。因此,将ajax功能放在一个函数中,&在每个要显示注释的文件中调用此函数。@reeleedr,假设我有一个php文件,通过回显html代码在网页上动态创建文件列表。我希望用户能够对每个文件进行注释,使用AJAX异步更新注释。但是,如果我可能有数千个具有不同html ID的文件,我不知道如何做到这一点。@DipanwitaKundu,可能有数千个以上的文件。在不反复编写ajax代码的情况下,我如何完成类似的任务?问题是:我的每个文件都有不同的id,但我不确定如何让AJAX知道要更新哪个文件id。我基本上想从PHP向AJAX“发送”一些关于文件的信息。但我不确定我怎么能做到
     function placeComments($mysqli, $parentId, $fileId) {
            $sql = "SELECT * FROM Comments WHERE parent = $parentId AND file = $fileId ORDER BY UNIX_TIMESTAMP(date) ASC";

            $comments = $mysqli->query($sql);
            while($comment = $comments->fetch_assoc())
            {
                echo '
                <ul class="comments">
                    <li class="clearfix">
                        <div class="post-comments">
                            <p class="meta"> '. $comment['date'] .' <a href="#">'. $comment['username'] .'</a> says : <i class="pull-right">
                            <p>'
                            .
                            $comment['content']
                            .

                            '</i></p><br><br>';

                echo '<div class = "col-sm-12 reply panel-group">';
                echo '<div class="panel panel-default">';
                echo '<p><a data-toggle="collapse" href="#'. $comment[
                    'file'] . '-' . $comment['id'] . '"> Reply </a></p>';
                echo '<div id="'. $comment['file'] . '-' . $comment['id'] .'" class="panel-collapse collapse">';
                echo '<div class="panel-body">';


                if(isset($_POST['submitComment-' . $comment['file'] . '-' . $comment['id']]))
                {
                    $user = $_POST['username'];
                    $content = $_POST['content'];
                    $fileId = $_POST['id'];
                    $parent = $_POST['parent'];
                    $date = date('Y-m-d H:i:s', time());

                    filterComment($mysqli, $fileId, $user, $parent, $content, $date);
                }   

                echo '<form method="post" class="form-horizontal" id="commentForm" role="form"> 
                    <div class="form-group">
                        <div class="col-sm-10 form">
                        <h5><b> Name: <b></h5>
                        </div>
                        <div class="col-sm-10 form">
                          <textarea class="form-control" name="username" id="username" rows="1"></textarea>
                        </div>
                        <div class="col-sm-10 form">
                        <h5><b> Reply: <b></h5>
                        </div>
                        <div class="col-sm-10 form">
                          <textarea class="form-control" name="content" id="content" rows="3"></textarea>
                        </div>
                        <div>
                            <input class = "form-control" type = "hidden" value = '. $comment['file'] . ' name = "id" id = "id" />
                        </div>
                        <div>
                            <input class = "form-control" type = "hidden" value = '. $comment['id'] . ' name = "parent" id = "parent" />
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="col-sm-offset-2 col-sm-10 form">                    
                            <button class="btn btn-success btn-circle text-uppercase" type="submit" id="submitComment" name = "submitComment-'. $comment['file'] .'-' . $comment['id'] . '"><span class="glyphicon glyphicon-send"></span> Reply </button>
                        </div>
                    </div>            
                </form>';

                echo '</div>';
                echo '</div>';
                echo '</div>';
                echo '</div><br><br>';
                placeComments($mysqli, $comment['id'], $comment['file']);
                echo '</div>';
                echo '</li>';



                echo '</ul>';
            }

            $comments->free();


        }