2016-02-03 36 views
1

爲什麼它是我的代碼不起作用?也許我想念一些東西。更新文本值與數據庫在codeigniter中的ajax

這裏是我的代碼

查看admin_page.php

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 

<script type="text/javascript"> 

// Ajax post 
    $(document).ready(function() { 

    $(".submit").click(function(event) { 

    event.preventDefault(); 
    var message = $("input#l_message").val(); 

    jQuery.ajax({ 
    type: "POST", 
    url: "<?php echo base_url(); ?>" + "admin/user_data_submit", 
    dataType: 'json', 
    data: {l_message: message}, 
    success: function(res) { 
    if (res) 
    { 
    // Show Entered Value 
    jQuery("div#msg").show(); 
    jQuery("div#msg").html(res..message); 
    } 
    } 
    }); 

}); 
}); 
</script> 
<body> 
<?php echo form_open(); 
    echo form_label('Librarians Message');?> 
    <textarea class="form-control" name="the_librarian" id="l_message"></textarea> 
    <?php echo form_submit('submit', 'Update',"class='submit'");?> 
<?php echo form_close();?> 
</body> 
在我的控制器

admin.php的

public function user_data_submit() 
{ 
    $data = array('message' => $this->input->post('l_message'), 
); 
    $this->home_admin_database->librarian_msg_insert($data); 
    //Either you can print value or you can send value to database 
    echo json_encode($data); 
} 

然後在我的模型Home_admin_database.php

public function librarian_msg_insert($data) { 
$message = array(
      'message' => $data, 
     ); 
// Query to insert data in database 
    $this->db->where('lm_id', '1'); 
    $this->db->update('librarians_message', $message); 
    if ($this->db->affected_rows() > 0) { 
    return true; 
    } 
    else { 
    return false; 
    } 
    } 

當我點擊更新按鈕時什麼也沒有發生,並且頁面刷新而不改變數據庫。請幫我...

我想不那麼刷新頁面成功後顯示一條消息來更新數據庫..

+0

您是否使用tinymce作爲textarea? –

+0

在你的阿賈克斯更改「類型」方法:「POST」 – killstreet

+0

另請檢查瀏覽器中的網絡選項卡。檢查是否顯示任何錯誤。 – killstreet

回答

1

更換

var message = $("input#l_message").val(); 

var message = $("textarea#l_message").val(); 

那麼它應該工作

+1

不工作sir kumar,我試圖在jQuery.ajax之前放置alert('test'),然後將jQuery.ajax作爲註釋。當我點擊按鈕的彈出窗口顯示,但如果我刪除了jQuery.ajax作爲評論什麼都沒有發生,我的頁面刷新然後沒有改變我的數據庫... –

+0

@MGBC jQuery(「div#味精」)。 ..信息);到jQuery(「div#msg」)。html(res.message);即使我改變它, –

+0

也不起作用。我認爲在ajax語法先生有一個問題,我試圖把alert();之前jQuery.ajax和刪除jQuery.ajax方法,當我點擊按鈕彈出顯示的警告......也許ajax是問題,但不知道如何解決它... –

0

在視圖文件中嘗試使用

echo form_button('submit', 'Update',"class='submit'"); 

,而不是

echo form_submit('submit', 'Update',"class='submit'"); 

如果上面的工作不正常,試試你的提交事件而不是點擊的運氣...

同時更換

var message = $("input#l_message").val(); 

var message = $("#l_message").val(); 

=>另一個步驟是使用

<form Method="Post" class="submit_form"> 

代替

echo form_open(); 

或通過在文檔加載jQuery的刪除表單action屬性

$(".submit_form").submit(function(event) {...});爲Ajax調用

+0

我試圖改變但不工作.. –

+0

我已經做了一些編輯我的答案..請嘗試...祝你好運 –

+0

我試過,但沒有發生,即使我改變它提交。有沒有什麼辦法可以像提醒一樣來追蹤問題? –

0

你好,我是古ESS您使用TinyMCE的,TinyMCE的不能獲得價值一樣,你應該添加 獲得價值

tinyMCE.triggerSave(); 

那麼請改變你的JavaScript

<script type="text/javascript"> 

// Ajax post 
    $(document).ready(function() { 

    $(".submit").click(function(event) { 

    event.preventDefault(); 
    tinyMCE.triggerSave(); 
    var message = $("#l_message").val(); 

alert(message) //please see is it right value or not ! 

    jQuery.ajax({ 
    type: "POST", 
    url: "<?php echo base_url(); ?>" + "admin/user_data_submit", 
    dataType: 'json', 
    data: {l_message: message}, 
    success: function(res) { 
    if (res) 
    { 
    // Show Entered Value 
    jQuery("div#msg").show(); 
    jQuery("div#msg").html(res..message); 
    } 
    } 
    }); 

}); 
}); 
</script> 

希望使用TinyMCE的這種幫助別人,

+0

不工作,先生,錯誤是GET http://localhost/nmsc/js/jquery.min.js是否有任何jQuery的問題? –

0

更改查看的編碼代碼:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script type="text/javascript"> 

    $(document).ready(function() { 
     $("#submit").click(function(){ 
      // get all post from form with id form-msg 
      dataString = $("#form-msg").serialize(); 
      $.ajax({ 
      type:"POST", 
      url:"<?php echo base_url(); ?>index.php/admin/user_data_submit", 
      //parsing data to your controller 
      data:dataString, 

      success:function (data) { 
       // Show Entered Value 
      $("div#msg").show(); 
      $("div#msg").html(data); 
       alert('Success'); 
      } 

      }); 

     return false; 
     }); 
    }); 
</script> 

<body> 

    <?php 
    // add form id 
    echo form_open('',"id='form-msg'"); 
    echo form_label('Librarians Message');?> 
    <textarea class="form-control" name="the_librarian" id="l_message"></textarea>  
    <?php 
    // add button 
    echo form_button('submit', 'Update',"id='submit'"); 
    ?> 
    <?php echo form_close();?> 

</body>