无法从数据库中获取记录并通过ajax加载到视图中

时间:2016-07-13 13:17:32

标签: jquery mysql ajax codeigniter

在这里,我想获取记录,并希望通过使用ajax在视图中显示。在这里,我无法获得json数据。如果我得到了,那么传递给视图的正确方法是什么。 通过这个,我想从表中获取用户名和注释,并希望使用ajax在click事件中显示。 我希望像 Facebook 那样做,当用户评论时,评论显示没有页面加载。

控制器:

public function get_comments()
{

            $query=$this->db->query("SELECT user_name,comments FROM user_comments join user_reg where user_reg.user_id=user_comments.user_id");
            $temp = $query->result();
            foreach($temp as $row)
            {
                header('Content-Type: application/json');
                echo json_encode($row); 

            }
            exit();

}

查看:

<form action="" method="post" name="usercomments" id="usercomments"> 
            <div>
                <textarea name="comment" form="usrform" placeholder="Enter comment here..." id="ucom"></textarea>
                </br>

                <div class="tab-group">
                <input type="submit" class="button button-block tab" id="submitbutton" value="Comment"/>
                </div>
            </div>

        </form> 

    $(document).ready(function()
    {

        $("#submitbutton").click(function(event)
        {
            //alert('hiii');
            event.preventDefault();

            jQuery.ajax({
                type:"POST",
                url:"<?php echo base_url();?>index.php/welcome/get_comments",
                dataType:"json",
                data:"",
                success:function(data)
                {
                    console.log(data);
                    alert(data);
                } 


            });



        });

    });

2 个答案:

答案 0 :(得分:1)

沿着这些方向尝试一些事情。我们正在将行重建为更易于读取的客户端对象,并在循环之外对其进行编码。您也不需要像这样设置标题。

$query=$this->db->query("SELECT user_name,comments FROM user_comments join user_reg where user_reg.user_id=user_comments.user_id");
$temp = $query->result();
$response = array();
foreach($temp as $row){
   $user = $row['user_name'];
   $response[$user][] = $row['user_comments'];
}
echo json_encode($response); 

答案 1 :(得分:0)

你应该尝试将你的&#34; echo json_encode&#34;在你的循环之外。

使用数组来存储你的行和json_encode这个数组。