jquery没有使用$ .post调用php

时间:2011-05-20 00:49:44

标签: php jquery codeigniter

我有一个jquery,当点击一个复选框时会被调用。 jquery执行,但PHP文件没有被调用(至少我不认为它被调用)。

我不能在PHP函数中放置“echo”语句,因为PHP没有返回任何内容(它只是在jquery调用时更新了一个表)+我不知道它会在哪里回显!

  1. 有人能告诉我为什么没有调用PHP函数吗?
  2. 我如何“调试”通过jquery以这种方式调用的PHP函数,假设我不能只回显变量?
  3. 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);
    }
    

    编辑:使用$ .post中的完整URL(http://.../upic/update_notify)。但是只调用控制器和函数不会。

2 个答案:

答案 0 :(得分:0)

我发现在使用CodeIgniter进行调试时使用log_message很有用,请看一下:http://codeigniter.com/user_guide/general/errors.html

除此之外,为什么你认为这个行动没有被召唤?

答案 1 :(得分:0)

您最好使用:

$.post('<?=site_url('controller/function');?>',{data here})