Вопрос по jquery, ajax – нажмите кнопку JQuery + отправить данные без формы - закладки

8

Я работаю над функцией закладки, при которой пользователь нажимает кнопку jQueryui, и определенная информация отправляется в базу данных. Но я не использую форму, потому что нет никакой информации, которую пользователь мог бы ввести.

Я извлекаю идентификатор пользователя из данных сеанса и отправляю сегмент URI (часть URL)

Используя codeigniter / php.

Я пытаюсь выяснить, что поместить в часть данных функции ajax / post, поскольку там нет формы / нет введенных данных, и что делать с «отправить». часть контроллера.

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");
                }
            });  

    });
Как модель связана? wallyk
@wallyk Модель (bookmarks_model) связана с контроллером последней строкой функции контроллера. chowwy

Ваш Ответ

3   ответа
8

submit ключ вPOST арг. Вы можете подделать его, отправивdata: {submit:true} или удалив оператор if и просто обработав запрос POST

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

});
Error: User Rate Limit Exceeded chowwy
Error: User Rate Limit Exceeded chowwy
0

jQuery.ajax ()

Data to be sent to the server. It is converted to a query string, if not already a string. It's appended to the url for GET-requests.

Если вы не знаете, что поместить для данных, возможно, вам следует удалить эту опцию? В функции вашего контроллера addBookmark () вы можете уменьшить код, сняв флажок if. Попробуйте это и посмотрите, работает ли это для вас.

Error: User Rate Limit Exceeded chowwy
Error: User Rate Limit Exceeded$user_idError: User Rate Limit Exceeded$bookmarkError: User Rate Limit ExceededpostBookmark()Error: User Rate Limit ExceededaddBookmark()Error: User Rate Limit Exceededbookmarks_model->postBookmark($id, $bookmark);Error: User Rate Limit ExceededtwoError: User Rate Limit ExceededpostBookmarkError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded$this->bookmarks_model->postBookmark($id, $bookmark);Error: User Rate Limit Exceededfunction postBookmark() {Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded chowwy
Error: User Rate Limit Exceeded chowwy
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); 
 });
Error: User Rate Limit Exceeded chowwy
dataError: User Rate Limit Exceeded
Error: User Rate Limit ExceededdataError: User Rate Limit Exceeded.post()Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded chowwy
Error: User Rate Limit Exceeded chowwy

Похожие вопросы