2017-02-23 67 views
0

我正在嘗試使用帶有ajax的複選框來更新我的數據庫數據。當我點擊它時,複選框正在運行,提醒成功消息。但不會將數據傳遞給我的控制器。我不知道在哪裏找到我的錯誤。我想弄清楚如何檢查數據是否傳遞給我的控制器。ajax複選框沒有傳遞我的數據到codeigniter中的控制器

任何人都可以幫到我嗎?

視圖

$checked = FALSE; 
if($result->consignment == 1) { $checked = TRUE; } 
    $data = array(
     'value' => $result->id, 
     'onClick' => 'incoming_CheckboxState();', 
     'class' => 'incoming', 
     'checked' => $checked 
    ); 
echo form_checkbox($data);?> Incoming 

AJAX

function incoming_CheckboxState() { 
    if ($('.incoming').is(':checked')) { 

    var id = $('.incoming').val(); 
    var yes = 1;     
    $.ajax({ 
     type: "POST", 
     url: "<?=based_url(); ?>user_accounts/update_permission", 
     data: { user_id : id, status : yes }, 
     success: function(msg) { 
      alert("Activated"); 
     } 
    }); 
    } 
} 

控制器

public function update_permission(){ 
    $data = array(
     'id' => $this->input->post('user_id'), 
     'status' => $this->input->post('status') 
    ); 
    $this->user_accounts_model->incoming($data); 
} 

模型

public function incoming($data){ 
    $this->db->set('consignment', $data['status']) 
      ->where('id', $data['id']) 
      ->update('users'); 
} 

回答

1

做這些

  1. 變化AJAX URL

    url: "<?=base_url()?>user_accounts/update_permission" 
    
  2. 設置你base_url。(application/config/config.php

    $config['base_url'] = 'http://stackoverflow.com/'; 
    
+0

這是我的base_url = $ config ['base_url'] =''; –

+0

不要將基本網址留空。填充它 –

+0

如果基礎URL是空的,效果如何?我在教程中看到他們將它清空。我應該把什麼URL加入? –

0
url: "<?=based_url()?>./user_accounts/update_permission", 

應該是(在config.php自己的基本網址應該以斜槓設置):

url: "<?= base_url(); ?>user_accounts/update_permission", 

你在哪裏得到那個。從?

打開你的檢查員,進入網絡並點擊XHR來監視正在發出的Ajax請求(這樣你就可以看到請求是否被創建,以及你的發佈數據是否在那裏)。

+0

它仍然沒有工作,我的網絡,我有表格數據使用r_id:1 status:1 ,, –

+0

http:// [:: 1]/ci_attl/user_accounts/user_permission /%3C?= based_url();?%3E/user_accounts/update_permission這是請求URL –

+0

@GeninaAnneGabuten似乎你基本網址設置不正確。 – Callombert

相關問題