2011-05-20 58 views
1

我有一個jquery,當點擊一個複選框時會被調用。 jquery執行,但PHP文件沒有被調用(至少我不認爲它被稱爲)。

我不能在PHP函數中放入「echo」語句,因爲PHP沒有返回任何東西(它只是在被jquery調用時更新表)+我不知道它會在哪裏回顯!

  1. 有人能告訴我爲什麼PHP函數沒有被調用嗎?
  2. 如何通過jquery「調試」以這種方式調用的PHP函數,假設我不能只回顯變量?

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(我使用的是笨框架):

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工程中。但只是調用控制器而不是函數。

+3

安裝Firebug的,看看究竟發生了 – zerkms 2011-05-20 00:54:16

+1

媽jQuery的,它永遠不會調用了...:P – alex 2011-05-20 00:58:59

+1

包裝您的點擊功能在文檔準備呼叫,否則它會永遠不會被附加...這是'$(function(){...你的javascript在這裏...});' – Jason 2011-05-20 01:01:56

回答

0

您更好地使用:

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