在页面上显示我的控制器的结果

时间:2017-10-21 09:51:22

标签: php ajax codeigniter

我想显示控制器的结果,以查看ajax codeigniter中的页面。这是我在项目中使用的代码。如何编辑以在页面中将结果显示为表格。你能不能帮我编辑代码

$('.likeBtn').on('click', function(e){

    e.preventDefault();

    var likeCount = 0;

    $.ajax({
        type: 'GET',
        url: './mainView/getLikeCount',
        data: {activityId: activityId},
        success: function(data){
            likeCount = data;
        },
        error: function(e){
            console.log(JSON.stringify("Exception: " + e));
        }
    });

    $.ajax({
        type: 'POST',
        url: './mainView/postlike',
        data: {activityId : activityId, user_id: user_id},
        success: function(data){
            if(data == "deleted"){
                $('.likeImg').attr('src', 'IMG/icons/like.png');
                $('.likesCount').text(likeCount - 1);
            } else if(data == "liked"){
                $('.likeImg').attr('src', 'IMG/icons/likeTrue.png');
                $('.likesCount').text(likeCount + 1);
            }
        },
        error: function(e){
            console.log(JSON.stringify("Exception: " + e));
        }
    });
});

这是我的控制器

<head>
    <script type="text/javascript">
        $(function() {
            $(".submit_button").click(function() {
                var textcontent = $("#content").val();
                var dataString = 'content=' + textcontent;
                if (textcontent == '') {
                    alert("Enter some text..");
                    $("#content").focus();
                }
                else {
                    $("#flash").show();
                    $("#flash").fadeIn(400).html('<span class="load">Loading..</span>');
                    $.ajax({
                        type: "POST",
                        url: "<?php echo base_url(); ?>" + "index.php/Ajaxcontroller/getAttendence",
                        data: dataString,
                        cache: true,
                        success: function (html) {
                            $("#show").after(html);
                            document.getElementById('content').value = '';
                            $("#flash").hide();
                            $("#content").focus();
                        }  
                    });
                }
                return false;
            });
        });
    </script>
</head>

<body>
    <div class="container">
        <div class="main">
            <form method="post" name="form" action="">
                <textarea style="width:500px; font-size:14px; height:60px; font-weight:bold; resize:none;" name="content" id="content"></textarea><br />
                <input type="submit" value="Post" name="submit" class="submit_button"/>
            </form>
        </div>
        <div class="space"></div>
        <div id="flash"></div>
        <div id="show"></div>
    </div>
</body>

3 个答案:

答案 0 :(得分:0)

$data['result'] = "here is your model";

然后将其发送到视图:

$this->load->view('your_view_here', $data);

答案 1 :(得分:0)

在控制器中你必须使用&#34; echo &#34;在我们的视图页面中显示HTML的语句。

例如:

//Ajax example with my code

$('#suppliers').change(function()
 {
  var sup_id = $(this).val(); 
  if(sup_id != ''){
    $.ajax({
    url:BASE_URL+"orders/get_suppliers_details",
    type:'POST',
     data:{sup_id : sup_id},
     success:function(result)
     {
      if(result){
        $("#show").html(result);
      }else{
        echo "something went wrong.";
      }
     }  
    });   
  } 
}); 

public function get_suppliers_details(){

  $sup_id = $this->input->post('sup_id');    
  $sup_address = $this->orders_model->get_supplier_address_byId($sup_id);
  echo $sup_address[0]['address']."_".$sup_address[0]['supplier_type'];
  exit; 

}

这将显示在&#34; id show div&#34;

另一种方式:

public function get_suppliers_details()
{

  $sup_id = $this->input->post('sup_id');    
  $data['result'] = $this->orders_model->get_supplier_address_byId($sup_id);
  echo $this->load->view('orders/get_details.php',$data);

}

get_detail.php
<table>
    <tr>
        <td>Address</td><td><?php echo $result['address']; ?></td>
    </tr>

</table>

你可以在get_details.php中做你想做的事情,它会显示在&#34; show div&#34 ;;

抱歉我的英文。 谢谢。!

答案 2 :(得分:0)

我看到你的控制器回显了一个json_decode d php数组:

echo json_encode($ data);

所以你的输出是一个json字符串。因此,在success中,您必须使用该JSON字符串。将该JSON字符串转换为JavaScript对象。

success: function (html) {
     var res = JSON.parse(html);

     // now your result contains exactly the same things as the php array `$data` you decoded in the controller
}

请注意,我假设json_encode($data)是控制器唯一打印的内容。 如果打印了其他内容,JSON.parse()会给您错误。