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是怎麼關聯的。 求解网页语句意思!!! 完善代码:上传文件前,在客户端判断文件大小和类型 如何在artdialog open的窗口中关闭自己? 打印时强行设置页面为A4 单选按钮怎么不显示id 而是undefined Js拖拽实现改变Table的列宽 隐藏层显示问题??? 谢谢 请问如何给这段代码加个ID来判断某一组图片的大小? 请教大侠:模态对话框内的输入回车时,为傻会提交自己呢?(ie5~ie6) ?user_id=XXX问题! 获取位图个数和位图文件名称 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是怎麼關聯的。