2016-02-11 4 views
0

Добрый день, ребята, я не знаю, как я могу сделать ajax-вызов на Codeigniter
Может ли кто-нибудь показать мне, как это сделать здесь? Это поможет мне слишком много в моей карьере в программировании. Я смотрю учебники, но это не так, как мне нужно.
Итак, вот процесс, когда я отправляю данные в базу данных, вся страница не должна загружать и обновлять мои записи в представлении. Я старался изо всех сил, но я думаю, что мне действительно нужна твоя помощь. Благодарю вас.Система обмена сообщениями в Codeigniter AJAX

Мой сценарий

<script> 
$(document).ready(function(){ 

    $("#send").click(function() 
    {  
    $.ajax({ 
     type: "POST", 
     url: <?php echo base_url()?> + "messages/send_message", 
     data: {textbox: $("#textbox").val(),owner: $("#owner").val()}, 
     dataType: "text", 
     cache:false, 
     success: 
       function(data){ 
       alert(data); //as a debugging message. 
       } 
      });// you have missed this bracket 
    return false; 
}); 
}); 
     </script> 

Мой контроллер

function send_message() 
    { 
     $sk = random_string('alnum',5).time(); 
     $from= $_SESSION['username1']; 
     $owner = $_POST['owner']; 
     $desc = $_POST['textbox']; 
     $to = $this->Model_items->get_owner_name($owner); 
     $from = $this->Model_items->get_owner_name2($username); 
     date_default_timezone_set('Asia/Manila'); 
     $date = date("Y-m-d H:i:s"); 
     $data = array('message_from_username'=>$username,'message_to_username'=>$owner,'message_sk'=>$sk,'message_desc'=>$desc,'message_from'=>$from,'message_to'=>$to,'message_date'=>$date,'status'=>1); 
     $this->Model_messages->message_owner($data); 

    } 

Моя модель

function message_owner($data) 
    { 
     $this->db->insert('messages',$data); 
    } 

    function view_convo($from,$username) 
    { 
     $query = $this->db->query("Select * from messages where 
      (message_from_username = '$username' AND message_to_username = '$from') OR 
      (message_from_username = '$from' AND message_to_username = '$username') 
      order by message_id desc"); 

     return $query->result(); 
    } 

И для моих взглядов

<div class="col-md-9 ui segment pre-scrollable" style="min-height:100px;"> 
      <h3 class="ui dividing header">Conversation with <?php echo $convo_with?> 
      </h3> 
     <div class="ui comments"> 

     <?php 
      foreach($convo as $key) 
      { 
      ?> 
      <div class="comment"> 
      <a class="avatar"> 
       <img src="<?php echo base_url()?>img/default-avatar.png" style="width:30px;height:25px;border-radius:50%;"> 
      </a> 
      <div class="content"> 
       <a class="author"><?php echo $key->message_from?></a> 
       <div class="metadata"> 
       <span class="date"> 
        <?php  
       date_default_timezone_set('Asia/Manila'); 
        $now = strtotime(date("Y-m-d H:i:s")); 
        $date = strtotime($key->message_date); 
        $dateDiff = abs($now - $date); 
        $fullDays = floor($dateDiff/(60*60*24)); 
        if($fullDays==0) 
        { 
         echo " Today "; 
        } 
        else if($fullDays==1) 
        { 
         echo " Yesterday "; 
        } 
        else 
        { 
         echo $fullDays ." days ago"; 
        } 
        $at=date('g:iA',$date) 
        ?> at <?php echo $at?> 
       </span> 
       </div> 
       <div class="text"> 
       <?php echo $key->message_desc?> 
       </div> 
      </div> 
      </div> 
      <?php 
      } 
      ?> 
      <br> 
     </div> 

<form method="post"> 
    <input id="owner" type="hidden" value="<?php echo $this->uri->segment(3);?>" name="owner"> 
    <input id="textbox" type="text" name="textbox"> 
    <input id="send" type="submit" name="send" value="Send"> 
</form>    

</div> 
+0

и ваша проблема? – madalinivascu

+0

Я не знаю, как обновить свое представление с новыми записями –

ответ

0

Вам нужно отправить обратно что-то для вызова Ajax Обновление функции Controler вернуть JSON с обновленным списком сообщений, формируют эту JSON вы используете JQuery в функцию успеха, чтобы обновить список сообщений

function send_message() 
    { 
     $sk = random_string('alnum',5).time(); 
     $from= $_SESSION['username1']; 
     $owner = $_POST['owner']; 
     $desc = $_POST['textbox']; 
     $to = $this->Model_items->get_owner_name($owner); 
     $from = $this->Model_items->get_owner_name2($username); 
     date_default_timezone_set('Asia/Manila'); 
     $date = date("Y-m-d H:i:s"); 
     $data = array('message_from_username'=>$username,'message_to_username'=>$owner,'message_sk'=>$sk,'message_desc'=>$desc,'message_from'=>$from,'message_to'=>$to,'message_date'=>$date,'status'=>1); 
     $this->Model_messages->message_owner($data); 
     $datareturned = $this->Model_messages->view_convo($from,$to); 
     return json_encode(array('message'=>'Database Updated successfully','data'=>$datareturned)); 
    } 

ЯШ:

$(document).ready(function(){ 

    $("#send").click(function() 
    {  
    $.ajax({ 
     type: "POST", 
     url: <?php echo base_url()?> + "messages/send_message", 
     data: {textbox: $("#textbox").val(),owner: $("#owner").val()}, 
     dataType: "text", 
     cache:false, 
     success: 
       function(data){ 
       alert(data.message); //as a debugging message. 
       //here you update the message list with the data from "data.data" 
       //using a loop and append 
       } 
      });// you have missed this bracket 
    return false; 
}); 
}); 
+0

Я имею в виду, мне нужно, чтобы мое представление обновлялось с новыми записями –

+0

обновил мой ответ – madalinivascu

0

контроллер:

function send_message() 
{ 
    $sk = random_string('alnum',5).time(); 
    $from= $_SESSION['username1']; 
    $owner = $_POST['owner']; 
    $desc = $_POST['textbox']; 
    $to = $this->Model_items->get_owner_name($owner); 
    $from = $this->Model_items->get_owner_name2($username); 
    date_default_timezone_set('Asia/Manila'); 
    $date = date("Y-m-d H:i:s"); 
    $data = array('message_from_username'=>$username,'message_to_username'=>$owner,'message_sk'=>$sk,'message_desc'=>$desc,'message_from'=>$from,'message_to'=>$to,'message_date'=>$date,'status'=>1); 
    $value = $this->Model_messages->message_owner($data); 
    Print_r($value); 
    die(); 

} 

Используйте функцию в контроллере

Смежные вопросы