9

ユーザーがjQueryuiボタンをクリックすると、特定の情報がデータベースに送信されるブックマーク機能に取り組んでいます。ただし、ユーザーが入力する情報がないため、フォームは使用していません。

セッション データからユーザーの ID を取得し、URI セグメント (URL の一部) を送信しています。

codeigniter/php を使用します。

フォーム/データが入力されていないため、ajax/post 関数のデータ部分に何を入れるべきか、およびコントローラーの「送信」部分をどうするかを理解しようとしています。

コントローラ

function addBookmark(){

        if ($this->input->post('submit')) {

            $id = $this->session->userdata('id');               
            $bookmark = $this->uri->segment(3, 0);

            $this->bookmarks_model->postBookmark($id, $bookmark);
        }

    }

モデル

function postBookmark() {

     $data = array(
            'user_id' => $user_id,
            'bookmark_id' => $bookmark,
    );

    $this->db->insert('bookmarks', $data);

    }

HTML

<button class="somebutton">Add bookmark</button>

jQuery

$('.somebutton').click(function() { 

            $.ajax({
                url: 'controller/addBookmark',
                type: 'POST',
                data: ???,
                success: function (result) {
                  alert("Your bookmark has been saved");
                }
            });  

    });
4

3 に答える 3

8

あなたの問題は、引数のsubmitキーをチェックしていることです。送信するか、 if ステートメントを削除して POST リクエストを処理するだけでPOST偽造できますdata: {submit:true}

$('.somebutton').click(function() { 

        $.ajax({
            url: 'controller/addBookmark',
            type: 'POST',
            data: {'submit':true}, // An object with the key 'submit' and value 'true;
            success: function (result) {
              alert("Your bookmark has been saved");
            }
        });  

});
于 2012-05-02T01:38:18.690 に答える
0

jQuery.ajax()のドキュメントから

サーバーに送信されるデータ。まだ文字列でない場合は、クエリ文字列に変換されます。GETリクエストのURLに追加されます。

データに何を入れるべきかわからない場合は、おそらくそのオプションを削除する必要がありますか?コントローラ関数addBookmark()で、ifチェックを削除することでコードを減らすことができます。これを試して、それがあなたのために働くかどうか見てください。

于 2012-05-02T01:47:01.010 に答える
0

またはを.ajax()使用する代わりに.get().post()

使用する.get()

 $.get('controller/addBookmark',function(data){ 
     alert('Your bookmark has been saved'); 
 });

使用する.post()

 $.post('controller/addBookmark', function(data) {
     alert('Your bookmark has been saved, The contents of the page were:' + data); 
 });
于 2012-05-02T01:32:35.573 に答える