2013-07-02 2 views
0

У меня есть функция для вставки значения в базу данных. Все идет хорошо, но я застрял в процессе ajax, чтобы отобразить текущее значение, вставленное в новую строку таблицы. Я не мог найти способ отображения или повторения значений. Мне нужна немедленная помощь в этом. Если кто-то выяснит, что я должен добавить.
Как я могу получить значение эха для результата ajax для отображения в новой строке.Как отобразить результат ajax в строке таблицы

вот мой модальное ..

public function pinsert() { 
    $amount = $this->input->post('amount'); 
    $paid_date = $this->input->post('paid_date'); 
    $project = $this->input->post('e1'); 

    $data = array(
     'paid_date' => $paid_date, 
     'amount' => $amount, 
     'pro_id' => $project 
    ); 
    $this->db->insert('payment', $data); 
    } 

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

public function payment_insert() { 
     $this->load->model('payment_model'); 
     $feed= $this->payment_model->pinsert(); 
     } 

И, наконец, мой JQuery для AJAX

<script> 
     $(document).ready(function() { 
        $(".btn-primary").live('click',function(){ 
       var post_data=$('.modal-body').find('input,select').serialize(); 
       // var select=$('select').val(); 
       $.ajax(
        { 
         url: "<?php echo site_url("payment/payment_insert"); ?>", 
         type: 'POST', 
         data: post_data, 
         success: function(result) 
         { 
         // console.log(result); 
          var $tr = $('<tr/>'); 
$tr.append($('<td/>').html(result.p_id)); 
$tr.append($('<td/>').html(result.project_title)); 
$tr.append($('<td/>').html(result.amount)); 
$tr.append($('<td/>').html(result.paid_date)); 
$tr.append($('<td/>').html(result.pro_id)); 
$('.table tr:last').before($tr); 
          //$('#table').html('<tr><td>'+result+'</td></tr>'); 
         } 
        }); 

      return false; 
      }); 

     }); 
    </script> 
+1

Пожалуйста, напишите, что вы получаете внутри метода успеха после вызова 'console.log (result);' !! –

+0

Я ничего не получаю ..coz я не мог понять, как эхо значение для console.log (результат); @PalashMondal – Rozer

+0

Вы уверены, что что-то вроде 'echo 'test';' не отображается в 'result.data', когда вы проверяете его в своем клиентском отладчике? – Mentok

ответ

0

Ну, я думаю, вам не нужно возвращать результат с вашей модели ПОЧЕМУ? потому что вы отправляете данные, которые вводятся в форму, поэтому, когда вы отправляете данные через ajax, не отправляйте всю форму, сериализируя ее. Получить значение каждого текстового поля отправить его в виде строки, и если результат верен показать, что переменные в строках , но если вы все еще хотите, чтобы показать его из данных, чем, после вставки записи с помощью модели, чем

public function payment_insert() { 
    $this->load->model('payment_model'); 
    $amount = $this->input->post('amount'); 
    $paid_date = $this->input->post('paid_date'); 
    $project = $this->input->post('e1'); 


    $data = array(
     'paid_date' => $paid_date, 
     'amount' => $amount, 
     'pro_id' => $project 
    ); 

    $feed= $this->payment_model->pinsert($data); 
    print json_encode($feed); 
    } 

public function pinsert($data) {  
    $this->db->insert('payment', $data); 
    $last_id = $this->db->last_id();//return last inserted id 
    $this->db->where('id',$last_id); 
    $query = $this->db->get(); 
    return $query->result_row(); 
} 

вам также может просто вернуть последний вставленный идентификатор и извлечь запись из другой функции модели, передав ей этот идентификатор. Я надеюсь, что это поможет вам

+0

поблагодарить u, это немного помогло мне, но как я могу отобразить на последней строке .. мой следующий код не работает за него – Rozer

+0

проверить ответы Я отправлю для этого ... –

0

вам нужно json_encode($result) свой результат в контроллере.

и в запросе JQuery Ajax нужно возвращение результата в формате JSON, как этот

dataType : 'json' 

Я думаю, что это поможет.

+0

но как я могу получить значение для кодирования. Покажите мне какой-то способ – Rozer

+0

вы можете использовать, как вы это делали ранее, в функции успеха –

1
$.ajax({ 
        url: "<?php echo site_url("payment/payment_insert"); ?>", 
        type: 'POST', 
        data: post_data, 
        dataType: 'json', 
        success: function(result) 
        { 
        //console.log(result); 
         $.each(result,function(key,value){ 
         var NewRow = '<tr><td">'+value.p_id+'</td>'; 
          NewRow += '<td>'+value.project_title+'</td>'; 
          NewRow += '<td>'+value.amount+'</td>'; 
          NewRow += '<td>'+value.paid_date+'</td>'; 
          NewRow += '<td>'+value.pro_id+'</td>'; 
          NewRow += '</tr>'; 

          $(".table").append(NewRow); 
         }); 
        } 
       }); 

     return false; 
     }); 

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

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