0

データベースに値を挿入する機能があります。すべてが順調に進んでいますが、テーブルの新しい行に挿入された現在の値を表示するために 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のjquery

  <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>
4

4 に答える 4

1

このリンクを確認してください

Codeigniter で jQuery と ajax を使用する

1 つ覚えておいてください。エコーしないと ajax データを取得できません。

于 2013-07-02T10:32:38.860 に答える
0

モデルから結果を返す必要はないと思いますが、なぜですか? フォームに入力されたデータを送信するため、ajax を介してデータを送信する場合は、フォーム全体をシリアル化して送信しないでください。各テキストフィールドの値を取得して文字列として送信し、結果がtrueの場合はその変数を行に表示しますが、データから表示したい場合は、モデルを介してレコードを挿入した後、

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 を渡すことでレコードをフェッチすることもできます。お役に立てば幸いです

于 2013-07-02T11:14:53.663 に答える