click jquery button + send data without form - bookmark

ajax, codeigniter, codeigniter-2, jquery

Solution

Your problem is you are checking for a `submit` key in the `POST` args. You can either fake it by sending `data: {submit:true}` or by by removing your if statement and just processing a POST request

$('.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");
            }
        });  

});

Problem

I'm working on a bookmarking function where the user clicks on a jQueryui button and certain information is sent to the database. But I'm not using a form, because there is no information for the user to enter. I'm pulling the user's ID from the session data, and I'm sending a URI segment (portion of the URL) Using codeigniter/php. I'm trying to figure out what to put in the data portion of the ajax/post function, since there's no form/no data entered, and what to do about the "submit" part of the controller. Controller ``` function addBookmark(){ if ($this->input->post('submit')) { $id = $this->session->userdata('id'); $bookmark = $this->uri->segment(3, 0); $this->bookmarks_model->postBookmark($id, $bookmark); } } ``` Model ``` 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"); } }); }); ```

Original source