首页 > 解决方案 > Jquery Inline 编辑器插件在下拉选择中保存数字

问题描述

再会,

我有一个带有 jQ​​uery 插件的数据表,它可以编辑并转换为所有表行的文本。需要创建一个下拉菜单来选择并在数据库中存储所选择的内容。一切都很好,因为插件有一个选项来创建带有选择选项的行,这里的问题是我在数据库中拥有的字段是基于 VARCHAR 的,并且插件只在选定的下拉字段中存储带有 ENUM 的数据。所以我不能将数据库字段更改为 ENUM,因为它会删除或更改已经存在的数据并且可能是一个问题。

当我单击编辑并查看下拉选项时,我看到的示例: 这就是我当前的下拉选择

当我点击保存按钮时,它会在数据库中显示: 在此处输入图像描述

发生这种情况是因为数据库上的列类型是 VARCHAR 并且插件需要它是 ENUM 才能将数据作为文本读取。

这是绘制表格和编辑插件数据的代码:

$(document).ready(function(){

 var dataTable = $('#tabla_clientes').DataTable({
    "language": {
        "url": "https://cdn.datatables.net/plug-ins/1.10.20/i18n/Spanish.json"
    },  
  "processing" : true,
  "serverSide" : true,
  "order" : [],
  "ajax" : {
   url:"fectch.php",
   type:"POST"
  }
 });     
$('#tabla_clientes').on('draw.dt', function(){
      $('#tabla_clientes').Tabledit({
       url:'action.php',
       deleteButton: false,
       autoFocus: false,
        buttons: {
            edit: {
                class: 'btn btn-sm btn-primary',
                html: '<span class="glyphicon glyphicon-pencil"></span> &nbsp Editar',
                action: 'edit'
            }
    
    
        },
       dataType:'json',
       columns:{
        identifier : [0, 'id_customer'],
        editable:[[1, 'customerID'], [2, 'RFC'], [3, 'firstname'], [4,'lastname'],[5,'email'],[6, 'tipo_cliente','{"1":"CONTADO","2":"CREDITO"}']]
       },
       restoreButton:false,
       onSuccess:function(data, textStatus, jqXHR)
       {
      
       }
      });
     });

我已经在互联网上进行了一些研究,但我找不到任何有解决方案或有这个问题的人。就像我说的,我不能简单地将字段更改为 ENUM,因为由于类型更改,有很多信息可能会被更改或删除。

有谁知道在选择下拉信息时将值存储为 VARCHAR 类型的文本的解决方案?

感谢您的时间和耐心。有一个美好的一天。

标签: datatablesjeditable

解决方案


我已经找到了一个非常简单的解决方法。

而不是直接将值作为数字添加到数据库中。

添加了一个 IF 来比较数字并将文本存储在变量中。

$tipo_cliente = $_POST['tipo_cliente'];
    $sitio = $_POST['sitio']
    if ($tipo_cliente == 1) {
        $tipo_cliente = 'CONTADO';
    } else
    {
        $tipo_cliente = 'CREDITO';
    }

推荐阅读