2013-07-02 63 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(); 
     } 

而且最後我對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我couldnot弄清楚如何回聲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(); 
} 

你後也可以返回最後插入的id,並通過將該ID傳遞給它從另一個模型函數中獲取記錄。 我希望它會幫助你

+0

謝謝你這有助於我稍微,但我怎麼能顯示在最後一行..我下面的代碼不工作因爲它 – Rozer

+0

檢查答案我會張貼爲... –

0

jQuery的需要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; 
     }); 

我希望這將解決您的問題。當你追加一個新東西時,它會自動結束