0

jquery.postを介してサーバーに投稿したデータをデータベースに入力しようとしています。

note = { // note object that will be sent to the server
    title: $('input.xlarge').val(); ,
    message: $('textarea.xlarge').val(); ,
    }

$.post(link + "cart/addtodb", note,
            function(data){

            if(data == 'true'){
                alert('Your note has been saved');
            }else{
                alert("Something went wrong");
            }   

         });

データの送信先のコントローラーのcodeigniterphpコードは次のとおりです。

public function addtodb()
    {
     $note = $this->input->post('note');
     $this->postit_model->addnote($note);
     echo 'true';  //send true response to client after note has been added to db
    }

これで、フィールドを持つpostsというデータベーステーブルid, title, message.ができました。渡されたデータセットをデータベースに挿入します。

質問:-サーバーに送信するjQueryオブジェクトの名前は、codeigniter $ this-> db-> insert('mytable'、$ dataを使用できるようにするために、データベースのフィールド名と同じである必要がありますか? ); 方法?

-値titleを挿入し、挿入先messageを明示的に指定せずにid、このデータセットがデータベースの最初の空の場所に追加されるようにするにはどうすればよいですか。

4

1 に答える 1

1

サーバーに送信するjQueryオブジェクトの名前は、codeigniter $ this-> db-> insert('mytable'、$ data);を使用できるようにするために、データベースのフィールド名と同じである必要がありますか?方法?

$dataいいえ。配列内のフィールド名を指定します。

$data = array(
    'field_name' => 'field value',
    'other_field' => 'other field value'
);
$this->db->insert('my_table', $data);

http://ellislab.com/codeigniter/user-guide/database/active_record.html#insert

このデータセットがデータベースの最初の空の場所に追加されるように、挿入するIDを明示的に指定せずに、値のタイトルとメッセージを挿入するにはどうすればよいですか。

データベーステーブルを作成するときに、idフィールドを主キー/自動増分として指定する必要があります。idこれにより、テーブルの行数に基づいて値が自動的に生成されます。これは標準的な手順であり、他の場所から取得した場合、またはチュートリアルに従っている場合は、データベースがどのように設定されるかがわかります。

http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

于 2013-01-24T21:11:48.253 に答える