【问题标题】:How to make a dynamic SQL insert via xhr?如何通过 xhr 进行动态 SQL 插入?
【发布时间】:2013-10-27 14:58:43
【问题描述】:

我正在将我的数据库加载到表中,我的想法是启用动态编辑,就像在 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 的变量数量也会有所不同。或者有什么办法?

【问题讨论】:

  • 您应该进行安全检查,当前形式的脚本是一场灾难。无论如何,对于动态字段,您可以在 javascript 中使用 .serialize() 来获取字段并准备通过 ajax 请求发送它们。

标签: php jquery codeigniter postgresql xmlhttprequest


【解决方案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

【讨论】:

    猜你喜欢
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2020-07-13
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 2012-09-11
    相关资源
    最近更新 更多