Я загружаю свою БД в таблицы, и моя идея заключалась в том, чтобы включить динамическое редактирование "на лету", например, в phpMyAdmin. Это было не так сложно. По крайней мере, с передней стороны. Создание функции удаления для записей было также легким, но я не могу придумать, как сделать динамическую вставку. В частности, как сформулировать запрос, который будет обращаться к значениям из недавно отредактированной строки таблицы, которая предназначена для новой записи.
Что касается удаления записей, я использую:
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
, также будет меняться. Или, может быть, есть способ?
использовать объект
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