2016-01-25 33 views
-1

我想用ajax更新數據庫中的記錄而不重新加載頁面。Php,codeigniter,ajax,mysql

//Here is my controller. 
Public function changeid() 
{ 
    $this->view->('admin/change_id'); 
} 

Public function ajax_changeid() 
{ 
    $old_id =$_POST[studentid]; 
    $newid =$_POST[new_id]; 
    If(isset($_POST[`new_id')){ 
    $data =array(
     'student_id'=>trim($newid)); 
    $this->db->where('student_id', $old_id); 
    $this->db->update('student'); 
    echo "info submited"; 
} 
    echo json_encode($data); 
} 

我的看法形式CHANGE_ID

<form id='formajax' method='post' name='form'> 
<input type="text" id="studentid" 
name="studentid"   readonly="readonly" 
value="<? php echo $row- >student_id; ?>" /> 
<input type="text" name="new_id" id="new_id" > 
<input type="submit" id="btnsubmit"  
value="Update"  class="button success" 
onclick="myFunction()" /> 
<\form> 

// Ajax script 
<script> 
//ajaxForm({ 
//function myFunction(){ 
(document).ready(function(){ 
$("#btnsubmit").click(function(event){ 
    event.preventDefault(); 
    var stud_id =   
    document.getElementById("new_id").value; 
    var studentid =  
    document.getElementById("studentid").value; 
    var dataString = 'new_id1=' + new_id + 
    '$studentid1=' + studentid; 

    $.ajax({ 
    type:"POST", 
    url:"<?php echo base_url()?  
    >"+"index.php/school_settings/ajax_changeid", 
    data:dataString, 
    cache:false, 
    success:function(html){ 
    //alert(html); 
    alert('im working'); 

    } 
    }); 
    return false; 

    }); 
}); 
</script> 

所面臨的挑戰是保持頁面重新加載每次。 我點擊提交按鈕,不做任何事情。 我希望能夠更改ID並獲得成功
顯示的消息無需重新加載d頁面。

+0

你的問題是什麼?錯誤?題? –

+0

是上面的實際代碼 - 在php函數中有錯誤'ajax_changeid' – RamRaider

+0

修復此問題和chk結果<\form>到 – devpro

回答

0

你在你的代碼中的一些問題,用這個修改後的代碼:

控制器:

public function changeid() 
{ 
    $this->load->view('admin/change_id'); 
} 

public function ajax_changeid() 
{ 
    $old_id = $_POST['studentid']; 
    $newid =$_POST['new_id']; 
    if(isset($_POST['new_id'])) 
    { 
    $data =array(
      'student_id'=>trim($newid)); 
    $this->db->where('student_id', $old_id); 
    $this->db->update('student'); 
    echo "info submited"; 
    } 
    echo json_encode($data); 
} 

查看:

​​

我有什麼改變?

  • 更改負載視圖功能的$this->view->('admin/change_id');$this->load->view('admin/change_id');代替

  • 變化isset chekcing isset($_POST[`new_id')isset($_POST['new_id']),你已經錯過了結束]支架還使用反引號(不知道爲什麼)

  • 正確形式結束標記<\form>作爲</form>

  • 從按鈕中刪除onclick="myFunction()"事件,因爲您正在使用ajax中的onclick事件的按鈕ID。

+0

它沒有工作。當我點擊按鈕時,什麼都沒有發生,我什至沒有得到任何警報 – user3805094

+0

@ user3805094:至少調試你的代碼... print_r($ _ POST);在你的ajax_changeid()函數中檢查是否獲取值 – devpro

+0

我認爲窗體和控制器沒有看到與視圖窗體在同一頁面上的ajax腳本 – user3805094