JQuery и AJAX в Codeigniter - PullRequest
       0

JQuery и AJAX в Codeigniter

2 голосов
/ 29 июня 2011

Я просто хочу отображать контент из базы данных, когда нажимаю кнопку в codeigniter,

, вот мой скрипт

function check()
{

    var base_url="<?php echo base_url();?>"; 
    $.ajax({
    url :  base_url+"/seller/getSubCategory", success : function(data)
    {$('#content').html(data);}});
}

в controller.php

public function getSubCategory()
    {
        $data['result']=$this->propertydetails->getPropertyCategories();
        $this->load->view('seller/postdetails',$data);
    }

а вот модель.php

<?php
class propertydetails extends CI_Model
{
    function __construct()
    {
        parent::__construct();
        $this->load->database();
    }   
    function getPropertyCategories()
    {
        $query=$this->db->get('orx_categories');
        if($query->result()>0)
        {
            return $query->result();
        }
        else 
        {
            return $query->result();
        }   
    }
}

?>

когда я запускаю этот код, ничего не происходит, он не показывает никаких ошибок и ничего не возвращает.помогите мне решить это?

Ответы [ 4 ]

0 голосов
/ 06 мая 2014

Измените ваш скрипт на

function check() {

     var base_url="<?php echo base_url();?>"; 
     $.ajax({
          url : "<?php echo base_url();?>/seller/getSubCategory", 
          success : function(data){
                  $('#content').html(data);
          }
     });
 }

измените свой контроллер на:

public function getSubCategory()
    {
        $data = $this->propertydetails->getPropertyCategories();
        echo $data;
    }
0 голосов
/ 30 июля 2011

Вот общий пример того, что вы можете попробовать, это предполагает, что у вас есть форма и вы хотите использовать эти данные публикации, или вы можете сделать что-то вроде (".button"). Click (...

После извлечения данных из запроса вы можете загрузить представление в переменную, а не отправлять его непосредственно для вывода, установив для третьего параметра загрузчика представлений значение true. При этом вы можете отправлять несколько представлений.вернуться на страницу, и это не заставляет вас писать html в контроллере.

Javascript code

<!-- language: lang-js -->
$(document).ready(function(){
    $("#form").submit(function(e){
        e.preventDefault();
        $.post("base_url+"/controller/method", $("#form").serialize(),
        function(data){
        if(data.status == "valid"){
            $(".view1").html(data.view1);
            $(".view2").html(data.view2);
        }
        }, "json");
    });
});

И ваш php контроллер

class Controller extends CI_Controller {
public function method()
   {
      $this->load->model('Some_model','', TRUE);
      $data['results'] = $this->Some_model->some_function();
      if($data['results']['status'] == "valid"){
         $json['status'] = "valid";
         $json['view1'] = $this->load->view('view1',$data,true);
         $json['view2'] = $this->load->view('view2',$data,true);
         echo json_encode($json);
      }
      else {
         $json['status'] = "invalid";
         $json['error'] = "<h3>Login Failed</h3>";
         echo json_encode($json);
      }
   }
}

и ваша модель php

class Some_model extends CI_Model {
public function some_function()
   {
      $query=$this->db->get('orx_categories');
      if($query->num_rows() > 0) {
         $sata['status'] = "valid";
         foreach($sql->result() as $row) {
            $data['results'][] = $row;
         }   
      }
      else {
         $data['status'] = "invalid";
      }
      return $data;
   }
}
0 голосов
/ 20 февраля 2012

В функции контроллера при загрузке представления передают третий логический параметр true.это означает, что вы получите это представление и сохраните его в переменной, а не отобразите его, а затем отобразите значение этой переменной.см. ниже код функции контроллера

public function getSubCategory()
{
    $data['result']=$this->propertydetails->getPropertyCategories();

    //note the third parameter to the view method
    //it means get the content of the seller/postdetails view and store it
    //in a local variable $output
    $output = $this->load->view('seller/postdetails',$data,true);
   //now echo the $output so that the javascript function can consume
   echo $output;
}
0 голосов
/ 01 июля 2011

Я считаю, что Charles Proxy неоценим при отладке ajax-запросов: http://www.charlesproxy.com/ Я бы также дважды проверил, что URL-помощник загружен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...