datatables - Jquery Inline 编辑器插件在下拉选择中保存数字
问题描述
再会,
我有一个带有 jQuery 插件的数据表,它可以编辑并转换为所有表行的文本。需要创建一个下拉菜单来选择并在数据库中存储所选择的内容。一切都很好,因为插件有一个选项来创建带有选择选项的行,这里的问题是我在数据库中拥有的字段是基于 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>   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 类型的文本的解决方案?
感谢您的时间和耐心。有一个美好的一天。
解决方案
我已经找到了一个非常简单的解决方法。
而不是直接将值作为数字添加到数据库中。
添加了一个 IF 来比较数字并将文本存储在变量中。
$tipo_cliente = $_POST['tipo_cliente'];
$sitio = $_POST['sitio']
if ($tipo_cliente == 1) {
$tipo_cliente = 'CONTADO';
} else
{
$tipo_cliente = 'CREDITO';
}
推荐阅读
- swiftui - 使用文本和滑块 swiftUI 创建 HStack 的垂直堆栈
- python - 仅对满足 Python 中特定条件的像素执行 2D 卷积
- c# - 如果输入参数不为空,MySql 更新
- javascript - 如何以角度向API服务异步添加数据(需要迭代两次)?
- android - Android 向上滑动以打开画廊,就像在 whatsapp 相机中一样
- python - Seaborn 中的自定义图表格式
- python - 拆分成str后加入列表元素
- python - 如何将变量从一个 Tkinter 窗口传递到另一个窗口?
- html - 我的 XPath 不适用于所有场景
- javascript - TypeError:无法读取未定义的属性“单词”。在 React 中使用 CypherJS