jquery не вызывает php, используя $ .post - PullRequest
1 голос
/ 20 мая 2011

У меня есть jquery, который вызывается при нажатии флажка. Jquery выполняется, однако файл PHP не вызывается (по крайней мере, я не думаю, что он вызывается).

Я не могу поместить операторы "echo" в функцию PHP, поскольку из PHP ничего не возвращается (он просто обновляет таблицу при вызове jquery) + Я не знаю, где это тоже будет выводиться!

  1. Может кто-нибудь сказать мне, почему функция PHP не вызывается?
  2. Как мне "отладить" функцию PHP, вызываемую таким образом через jquery, предполагая, что я не могу просто выводить переменные?

JQuery:

$('#notify_checkbox').click(function(){

if($('#notify_checkbox').is(':checked'))
    {
        $.post("/upic/update_notify", { checked: "y", email: "<?php echo $this->session->userdata('email');?>" });
        $( "#notifyresult" ).html( "<p>Awesome, we'll send you an email!</p>" );
}
else
{
        $.post("/upic/update_notify", { checked: "n", email: "<?php echo $this->session->userdata('email');?>" });
        $( "#notifyresult" ).html( "<p>Okay, we won't email you.</p>" );
}
});

И PHP (я использую платформу CodeIgniter):

function update_notify()
{
    // Passed through AJAX
    $notify = $_POST['checked'];
    $email = $_POST['email'];

    $this->load->model('musers');
    $query = $this->musers->update_user_notify($email, $notify);
}

РЕДАКТИРОВАТЬ: Использование полного URL (http: //.../upic/update_notify) в $ .post работает. Но вызывать только контроллер, а функция - нет.

Ответы [ 2 ]

0 голосов
/ 20 августа 2012

Вам лучше использовать:

$.post('<?=site_url('controller/function');?>',{data here})
0 голосов
/ 20 мая 2011

Я считаю, что использование log_message полезно при отладке с CodeIgniter, посмотрите здесь: http://codeigniter.com/user_guide/general/errors.html

Кроме того, как вы думаете, почему действие не вызывается?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...