combox是关联后台数据库的id和name对应,如果用鼠标点击下拉框选择的话 可以获取id?????? combox是关联后台数据库的id和name对应,如果用鼠标点击下拉框选择的话 可以获取id,但是如果用手动输入的话 ,虽然输入的值也是数据库中有的值 但是保存的时候 获取到的却是name值 不是id值我 保存的时候 要保存id值 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //托运方式------------------------------------------------- var comtyfs_httpProxy = new Ext.data.HttpProxy({ url : "Data/dangan/GetTyfs.aspx" }); var comtyfs_create = new Ext.data.Record.create([{ name : "id", mapping : "id" }, { name : "name", mapping : "name", type : "string" }]); var comtyfs_jsonReader = new Ext.data.JsonReader({ totalProperty : "totalProperty", // 总记录数 root : "data" // 所有的数据(json对象数组) }, comtyfs_create) var tyfs_Store = new Ext.data.Store({ proxy : comtyfs_httpProxy, reader : comtyfs_jsonReader }); tyfs_Store.load(); var combo_tyfs = new Ext.form.ComboBox({ store:tyfs_Store, id:'tyfs_add', name:'tyfs_add', hiddenName:'com_tyfshidden', fieldLabel:'托运方式', width:85, typeAhead: true, emptyText:'请选择...', triggerAction:'all', valueField:'id', displayField:'name', selectOnFocus:true, allowBlank:false, //editable:true, //hiddenValue:01, //value:'汽运普件', mode:'remote', blankText:'请选择托运方式', listeners:{ 'beforequery':function(f){ var tyfsbm = Ext.getCmp("tyfs_add").getRawValue(); Ext.Ajax.request({ url:'data/jydbh/getTyfsbm.aspx?tyfsbm='+tyfsbm, success:function(response){ var tmp = response.responseText.split("|"); if(tmp!=""){ AddPublishForm.getForm().findField("tyfs_add").setValue(tmp[0]); } else { AddPublishForm.getForm().findField("tyfs_add").setValue(""); } } }) } } }); listeners:{ 'beforequery':function(f){是为了在combox中可以手动输入值(比如输入编码自动去查询对应的name 并显示到combox中)如果把beforequery换成select 的话 每次都要用鼠标去选 不能提高录入的速度要求既能提高录入速度 又能保存手动录入值(name)对应的id 谁给改造改造 combx 数据是从后台获取 关联数据库数据id name对应 要求:1、可以手动输入id 查询到name 赋值combox本身 2、可以手动输入name 3、可以选择 下拉框 找到对应的值 4、在下拉框中有一项为....按钮 选择的话 可以弹出一个对话框(有筛选的条件)。供用户选择 1.这个listener可以解决吧2.这个让combox可编辑就可以了3.这是基本功能4.这个貌似不好做,需要更多代码 其实前面三个都已经实现了,就是保存的时候 1、如果是手动录入的话 保存的是name 不是id 2、如果是选择的话 保存的是id 如何是手动录入的文本对应数据库中的id 保存呢? 我没有试过手工录入的也能保存id,如果要实现的话,前台要加上非常多的代码吧,我实际在做的时候都是保存name,然后再后台用php转化为id的 问题是手动输入保存的是name 选择的时候保存的是id 同个字段保存的有两种结果 后面处理的话 很那处理的 问题是手动输入保存的是name 选择的时候保存的是id 同个字段保存的有两种结果 后面处理数据的话 很难处理的 问题是手动输入保存的是name 选择的时候保存的是id 同个字段保存的有两种结果 后面处理数据的话 很难处理的 问题是手动输入保存的是name 选择的时候保存的是id 同个字段保存的有两种结果 后面处理数据的话 很难处理的 问题是手动输入保存的是name 选择的时候保存的是id 同个字段保存的有两种结果 后面处理数据的话 很难处理的 LZ先慢慢整理一下思路吧一:LZ,你的COMBOX設置是以ID為值的。見valueField:'id',。 假如,你要的是name,就設置該字段為name。那就統一了。二:所謂的"虽然输入的值也是数据库中有的值 但是保存的时候 获取到的却是name值 不是id值"。 這個輸入的值,你是怎麼知道在數據庫中有?別說是以那個name到數據庫查的。 就是,輸入的值,跟你的數據ID是怎麼關聯的。 如何用js禁止ipad调出软键盘 如何把下面的弹出窗口改为有滚动条?谢谢! Javascript和CSS浏览器兼容总结 求一个正则表达式 关于jquery1.4.2 ajax请求内存泄漏的问题 又一问题。setAttribute("onclick",href)在ff下能用,而在ie下不可以呢? JS $.POST 问题 如何实现当一个iframe出现的时候停顿一下,不要忽忽上滚。在线等高手。 诚征javascript高手合作 请问用CFX+spring+hibernate 搭框架需要用到哪些包 获取位图个数和位图文件名称 js第11讲 JavaScript DOM的操作(下)
var comtyfs_httpProxy = new Ext.data.HttpProxy({
url : "Data/dangan/GetTyfs.aspx" });
var comtyfs_create = new Ext.data.Record.create([{
name : "id",
mapping : "id"
}, {
name : "name",
mapping : "name",
type : "string"
}]); var comtyfs_jsonReader = new Ext.data.JsonReader({
totalProperty : "totalProperty", // 总记录数
root : "data" // 所有的数据(json对象数组)
}, comtyfs_create) var tyfs_Store = new Ext.data.Store({
proxy : comtyfs_httpProxy,
reader : comtyfs_jsonReader
});
tyfs_Store.load(); var combo_tyfs = new Ext.form.ComboBox({
store:tyfs_Store,
id:'tyfs_add',
name:'tyfs_add',
hiddenName:'com_tyfshidden',
fieldLabel:'托运方式',
width:85,
typeAhead: true,
emptyText:'请选择...',
triggerAction:'all',
valueField:'id',
displayField:'name',
selectOnFocus:true,
allowBlank:false,
//editable:true,
//hiddenValue:01,
//value:'汽运普件',
mode:'remote',
blankText:'请选择托运方式',
listeners:{
'beforequery':function(f){
var tyfsbm = Ext.getCmp("tyfs_add").getRawValue();
Ext.Ajax.request({
url:'data/jydbh/getTyfsbm.aspx?tyfsbm='+tyfsbm,
success:function(response){
var tmp = response.responseText.split("|");
if(tmp!=""){
AddPublishForm.getForm().findField("tyfs_add").setValue(tmp[0]);
}
else
{
AddPublishForm.getForm().findField("tyfs_add").setValue("");
}
}
})
}
}
});
'beforequery':function(f){是为了在combox中可以手动输入值(比如输入编码自动去查询对应的name 并显示到combox中)
如果把beforequery换成select 的话 每次都要用鼠标去选 不能提高录入的速度要求既能提高录入速度 又能保存手动录入值(name)对应的id
combx 数据是从后台获取 关联数据库数据
id name对应
要求:1、可以手动输入id 查询到name 赋值combox本身
2、可以手动输入name
3、可以选择 下拉框 找到对应的值
4、在下拉框中有一项为....按钮 选择的话 可以弹出一个对话框(有筛选的条件)。供用户选择
2.这个让combox可编辑就可以了
3.这是基本功能
4.这个貌似不好做,需要更多代码
1、如果是手动录入的话 保存的是name 不是id
2、如果是选择的话 保存的是id 如何是手动录入的文本对应数据库中的id 保存呢?
我没有试过手工录入的也能保存id,如果要实现的话,前台要加上非常多的代码吧,
我实际在做的时候都是保存name,然后再后台用php转化为id的
问题是手动输入保存的是name 选择的时候保存的是id 同个字段保存的有两种结果 后面处理数据的话 很难处理的
问题是手动输入保存的是name 选择的时候保存的是id 同个字段保存的有两种结果 后面处理数据的话 很难处理的
问题是手动输入保存的是name 选择的时候保存的是id 同个字段保存的有两种结果 后面处理数据的话 很难处理的
假如,你要的是name,就設置該字段為name。那就統一了。
二:所謂的"虽然输入的值也是数据库中有的值 但是保存的时候 获取到的却是name值 不是id值"。 這個輸入的值,你是怎麼知道在數據庫中有?別說是以那個name到數據庫查的。 就是,輸入的值,跟你的數據ID是怎麼關聯的。