2013-10-18 18 views
0

我加載我的數據庫表和我的想法是在飛行中實現動態的編輯,就像是在phpMyAdmin。這並不難。至少從前端開始。爲記錄創建刪除功能也很容易,但我不知道如何製作動態插入。特別是,如何對將訪問新編輯的表格行中的值的查詢進行短語處理,該表格行是新記錄。如何通過xhr進行動態SQL插入?

至於刪除記錄使用:

var xhr; 
xhr=new XMLHttpRequest(); 

xhr.onreadystatechange=function() 
{ 
    if (xhr.readyState==4 && xhr.status==200) 
    { 
    document.getElementById("output").innerHTML=xhr.responseText; 
    } 
} 

$.fn.delClick = function() { 

    var table = $(this).parent().parent().parent(); 
    var row = $(this).parent() 

    if(confirm("Are you sure?")) 
    { 

    var tableName = table.find('.add').data('tablename'); 
    var idName = table.find('.add').data('idname'); 
    var rowId = row.children('td.id').html(); 

    xhr.open("POST","scripts/delete?tableName="+tableName+"&idName="+idName+"&rowId="+rowId,true); 
    xhr.send(); 

    row.remove(); 


    } 
} 

scripts/delete.php

$this->ci =& get_instance(); 

$remove = $this->ci->db->query("DELETE FROM ".$_GET['tableName']." WHERE ".$_GET['idName']." = '".$_GET['rowId']."'"); 

我希望能做出插入記錄類似的東西,但我堅持。
與插入記錄的主要問題是,我無法通過POST傳遞變量,因爲列的金額爲每個表不同,所以變量的量,我需要傳遞給我的scripts/insert.php也將有所不同。或者也許有一種方法?

+0

你應該做的安全檢查,您目前的形式腳本是一個災難。無論如何,至於動態字段,您可以在JavaScript中使用.serialize(),這需要字段並使它們準備通過ajax請求發送。 – ahmad

回答

1

使用對象

var inputs = {}; 
$('.formInput').each(function(){ 

    var id = $(this).attr('id'); 
    var val = $(this).val(); 
    inputs[id] = val ; 
}); 

$.post(insert_url , {inputs:inputs}); 

也可以分析一些簡單的CRUD系統,如

https://github.com/maxxxir/mz-codeigniter-crud