select下拉框 里面的值通过数组查到的 怎么再查询跳转以后 回值(就是查询看里还能看到值)?

String vc_tbname="select vc_tbname from t_column where lmbh="+cataId; //多表联查
String sql="select vc_id,lrdate from t_wry_import_log where tbname=("+vc_tbname+") order by lrdate desc";
String[][] list=null ;

list = Manager.doQuery("1", sql);
String strHtml="";

for(int i=0;i<list.length;i++){
strHtml+="<option  value=\""+list[i][0]+"\">"+list[i][1]+"</option>";

} //查出来的是数组 +list[i][0]+表示导入记录ID +list[i][1]+表示导入时间

 +"<td> &nbsp;导入记录:</td><td><select id=\"vc_id\" name=\"vc_id\"> <option value=\"\">--请选择--</option>"+strHtml+"</select></td><td>&nbsp;&nbsp;&nbsp;"    //一个下拉框  从数据库查询到值显示到框里

5个回答

如果下拉框代码是写在<% 下拉框代码 %>里面 下面的代码请写在<% %>外面
document.getElementById('下拉框ID').value='<%=request.getParameter("下拉框name")%>';



document.getElementById('vc_id').value='<%=request.getParameter("vc_id")%>';

你可以用ajax技术啊,它是一个中间机制,可以有效的回馈你所想要的数据,它有异步提交的功能,能实时更新!你可以去网上看一下,很好用。

 <body onload="gd()"> 在方法gd中写下拉框select的逻辑,返回后还会执行

用ajax技术吧,异步通讯。你在select的onChange事件中触发一个异步提交的函数就好了


<%



%> document.getElementById('vc_id').value='<%=request.getParameter("vc_id")%>';

//下面的代码要写在

//代码
//如果下拉框代码是写在<% 下拉框代码 %>里面 下面的代码请写在<% %>外面 document.getElementById('下拉框ID').value='<%=request.getParameter("下拉框name")%>';
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
s标签的下拉框传值问题.
我写了个练习,前台使用s标签,一个下拉框,内容如下: ``` <s:select list="lid" listKey="pid" listValue="pname" label="请选择部门" name="d.pid" value="e.dept.pid"></s:select> ``` 这个lid肯定有值,因为我输出 <s:property value="lid" /> 可以输出地址,我输出 lid[0].pname也可以拿到值.都是ok的是那时就在下拉框里输出不出来.这方面有没有什么需要注意的地方,百度查不出来.求指教
STRUTS2标签怎么实现选中下拉框的值,或者jQuery的其他方法
JSP代码: ![图片说明](https://img-ask.csdn.net/upload/201702/16/1487251997_725153.png) 下拉框 Department:的默认值是ALL,选择下拉框中的值然后点击查询虽然能够查询出对应的数据,但是下拉框中没有抓取到选中的值,还是显示ALL。就是要抓取下拉框选中的值,一直是显示默认的ALL怎么破?有详细代码解析最好,谢了!!!!!!
select下拉框 编辑时赋值
select是客户端的,像这样。 ``` <select runat="server" id="sel"> <option value="请选择">请选择</option> </select> ``` 我想在点击编辑时,将编辑的这个值默认选中,也就是赋值。后台这样写的 ``` protected string str; protected void Page_Load(object sender, EventArgs e) { string text = "闵行";//你拿到的值 str = text; } ``` 前台这样写的 ``` <script type="text/javascript"> document.getElementById('sel').value = '<%=str%>' </script> ``` 这样是可以赋值的,不过,select是后台查到的list,然后循环动态加子项的。所以这样这种方法又不行了,能帮我看一下么。谢谢!
关于下拉列表多选取值,数据库的存储读取的问题
这是一个下拉多选框 ``` <select name="DetectID" id="DetectID" class="selectpicker bla bla bli" data-live-search="true" multiple size="1"> <% List<DetectItem> list = (List<DetectItem>)request.getAttribute("list"); if(list == null || list.size() < 1){ out.print("没有数据!"); }else{ for(DetectItem dit : list){ %> <option value="<%=dit.getId()%>"><%=dit.getItemName()%></option> <% } } %> </select> ``` 这是网页显示的样子 ![图片说明](https://img-ask.csdn.net/upload/201805/24/1527162975_462498.png) 我想问怎么把选定的值的ID传到接收页面,我现在的写法只能获取到第一个选定值的ID,理想是把所有ID取成字符串的格式,数字用“;”隔开。存进数据库时会显示“1,;2;3”这种格式。该怎么改代码?另外还有当数据库的数据时“1;2;3”这种格式时,怎么通过关联查询查询到相关的3条数据(有两个表,一个表是存的“1;2;3”,一个表是存的数字对应的文字。两个表怎么建立关联查询,把结果存放到一个集合里。)
JSP页面中的下拉框不能显示取到的值
下拉框取不到返回的值 代码如下 ``` <td> <select id="enterpriseNature" > <option value="">-请选择-</option> </select> </td> ``` jquery代码: ``` <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.11.3.min.js"></script> <script type="text/javascript"> $(function(){ //页面加载函数就会执行,页面加载函数就会执行查询字典 $.post("${pageContext.request.contextPath }/baseDict_findByTypeCode.action",{"dict_type_code":"007"},function(data){ //遍历JSON数据 $(date).each(function(i,n){ $("#enterpriseNature").append("<option value='"+n.dict_id+"'>"+n.dict_item_name+"</option>"); }); },"json"); }); </script> ``` 控制台也打印出值了 ``` BaseDictAction中的findByTypeCode方法执行了.... Hibernate: select basedict0_.dict_id as dict_id1_0_, basedict0_.dict_type_code as dict_typ2_0_, basedict0_.dict_type_name as dict_typ3_0_, basedict0_.dict_item_name as dict_ite4_0_, basedict0_.dict_item_code as dict_ite5_0_, basedict0_.dict_sort as dict_sor6_0_, basedict0_.dict_enable as dict_ena7_0_, basedict0_.dict_memo as dict_mem8_0_ from base_dict basedict0_ where basedict0_.dict_type_code=? [{"dict_id":"16","dict_item_code":"","dict_item_name":"私营","dict_type_code":"007","dict_type_name":"企业性质"},{"dict_id":"17","dict_item_code":"","dict_item_name":"国企","dict_type_code":"007","dict_type_name":"企业性质"}] ``` 求大神帮帮小白
使用下拉框实现ajax,想实现删除按钮的功能传值一直出错
本人接触ajax第一天,纯新手,想要实现php+mysql+ajax下一个可以实现对数据库的增删改的操作,现在是查询达到目的效果了,但是删除功能的传值一直不对,查询到数据库语句的时候相当于执行where id = “” 求大神们指导一下,先贴部分代码: html下的下拉表单和删除按钮对应的参数值: <form> Select a User: <select name="user" id="user" onchange="showUser(this.value)"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <td> <input type="button" value="Delete" onclick="deleUser(document.getElementById("user").value)" /> </td> </select> </form> ``` 上面Select a User: <select name="user" id="user" onchange="showUser(this.value)">便是查询和显示的ajax,这里是正常实现了,但是 <input type="button" value="Delete" onclick="deleUser(document.getElementById("user").value)" /> 这里onclick的参数我试了很多种一直是不正确的,问题应该是在传给js里deleUser(str)的参数,求大大们指导。 js里的部分代码: function deleUser(str) { xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } var url="delete.php" url=url+"?q="+str url=url+"&sid="+Math.random() xmlHttp.onreadystatechange=stateChanged xmlHttp.open("GET",url,true) xmlHttp.send(null) } ``` php中删除的代码: <?php $q=$_GET["q"]; $con = mysql_connect("127.0.0.1","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("ajax_demo", $con); $sql=mysql_query("delete from user where id = '".$q."'"); $result = mysql_query($sql); mysql_close($con); ?>
bootstarp动态下拉框的实现
![图片说明](https://img-ask.csdn.net/upload/201704/09/1491719436_52420.jpg) ```<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@include file="/common/common.jsp"%> <%@page import="java.text.SimpleDateFormat"%> <html> <head> <% SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String date = format.format(new Date()); %> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="renderer" content="webkit"> <meta http-equiv="Cache-Control" content="no-siteapp" /> <title>短信网关统计</title> </head> <body class="gray-bg" onload="initCharts()"> <div> <div class="text-center p-lg"> <form role="form" class="form-inline" id="order_form"> <div class=" col-sm-2" > <span >渠道名称:</span> <select id="channelCode" name="channelCode" >//name:向后台传递的数据 <option value="0" selected="selected">全部</option> <option value="1">BAM系统</option> <option value="1">积分俱乐部</option> <option value="1">移动统一门户网站</option> <option value="1">积分后台</option> </select> </div> <div class="form-group"> <input placeholder="选择日期" readonly value="<%=date%>" name="queryDate" id="queryDate"> </div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input class="btn btn-primary btn-sm" type="button" value="查询" onclick="TableSwitch(); sms_botton()" > </form> </div> </div> <div> <div class="col-sm-4"> <table id="smstable" class="table table-bordered"></table> </div> <div class="col-sm-4" align="right"> <div style="width: 100%; height: 100%; -webkit-tap-highlight-color: transparent; -webkit-user-select: none; position: relative; background: transparent;" id="querySmsGatewayStatistics"> </div> </div> </div> </body> <script type="text/javascript"> $(function() { var start = { elem : '#queryDate', //选择ID为START的input format : 'YYYY-MM-DD', //自动生成的时间格式 min : '1999-01-01', //设定最小日期为当前日期 max : laydate.now(), //最大日期 istime : true, //必须填入时间 istoday : true, //是否是当天 start : laydate.now(0, "YYYY-MM-DD") //设置开始时间为当前时间 }; laydate(start); }); /* 初始化表格 */ $(function() { var table = new smstable(); table.init(); }); var smstable = function() { var tabledemo = new Object(); tabledemo.init = function() { $('#smstable').bootstrapTable({ url : "<%=request.getContextPath()%>/SmsGatewayStatistics/SmsGatewayStatistics1.do",// 请求的HTML页的URL地址。 data : {"queryDate" : $("queryDate").val()},//(Map) :发送至服务器的 key/value 数据 type : "POST",//客户端请求的类型(JSON,XML,等等) dataType : "json", columns : [ {field : 'orgId',title : '渠道编码'}, {field : 'orgName',title : '渠道名称'}, {field : 'amount',title : '总量'} ], }); }; return tabledemo; } /* 总量echarts图 */ var myChart = echarts.init(document.getElementById('querySmsGatewayStatistics')); function initCharts(){ $.ajax({ url:"<%=request.getContextPath()%>/SmsGatewayStatistics/SmsGatewayStatistics1.do", data:{"queryDate" : $("#queryDate").val()}, type:"POST", success:function(json){ var orgId = [];//渠道编码 var orgName = [];//渠道名称 var amount = [];//总量 /* 循环除数组的数据 */ for(var i = 0;i<json.length;i++){ orgId[i] = json[i].orgId;//渠道编码 orgName[i] = json[i].orgName;//渠道名称 amount[i] = json[i].amount;//总量 } /* 柱状图 */ option = { tooltip : { trigger: 'axis', axisPointer : { // 坐标轴指示器,坐标轴触发有效 type : 'shadow' // 默认为直线,可选为:'line' | 'shadow' } }, legend: { data:['总量'] //表头数据 }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis : [ { type : 'category', data : ['${orgName}'] //x轴现实的数据 } ], yAxis : [ { type : 'value' } ], series : [ { name:'总量', type:'bar', data:amount,//这里写变量值 markLine : { lineStyle: { normal: { type: 'dashed' } }, } } ] }; //封装以上属性 myChart.setOption(option , function (param){ var hz = param.name; alert(hz) }); //查看一个对象中拥有的属性 myChart.on("click", function (param){ var ob = eval(param); var Property=""; var hz = param.name; var hzz = param.seriesIndex; alert(hz) alert(hzz) }); } //对应success })//对应ajax }//对应function </script> </html> 我的实现思路是:在数据库中查询出来的数据动态的展示到下拉框里边,当用户点击这个下拉框的时候地下表格里边弹出的是点击节点工程的表格数据, ```
jquery 联动下拉框,动态添加dropdownlist option项后遇到问题
![图片说明](https://img-ask.csdn.net/upload/201501/20/1421764145_208667.png) 这是一个联动的案例 选择一级菜单 二级菜单随之改变, 现在选择二级菜单也就是成员那个下拉框的选项之后,点击查询(服务端查询)按钮,这个下拉框动态append的option都没有了,变成了空,请问如何选择完二级下拉的选项之后,点击查询按钮在后台能获取到它的选择项呢??? **完整代码如下:** ``` $(document).ready(function() { var $ddl = $("select[name$=txtPRJ_NAME0]"); $ddl.focus(); $ddl.bind("change", function() { if ($(this).val() != "") { loadEmployeeCarsTop($(this).val()); } else { } }); }); ``` **以下是调用的方法:** ``` function loadEmployeeCarsTop(selectedItem) { var schdata = { id: selectedItem }; $.post( "../../../WebHandler/DRProjectOperation.ashx" , { method: 'GetData', param: selectedItem } , function(result) { var rejson = $.parseJSON(result); if (rejson != null) { $("select[name$=ddlMember] > option").remove(); for (var i = 0; i < rejson.length; i++) { $("<option></option>").val(rejson[i].USERID).html(rejson[i].USERNAME) } } }); } ``` **这是一个联动的案例,txtPRJ_NAME0] 是在服务端绑定好的代码如下: ** ``` DataSet dt = Facade.FacadeFactory.Instance.DR_PRJ_MEMBERFacade.QueryDR_PRJ_MEMBERDataSet(dr); txtPRJ_NAME0.DataTextField = "PRJ_NAME"; txtPRJ_NAME0.DataValueField = "PRJ_ID"; txtPRJ_NAME0.DataSource = dt.Tables[0]; txtPRJ_NAME0.DataBind(); ListItem li = new ListItem(); li.Text = "--请选择--"; li.Value = ""; txtPRJ_NAME0.Items.Insert(0, li); ```
flask sqlalchemy 如何查询不特定的字段
1、问题 我想在前端传递不特定字段到后端,比如数据库中有user表有一个姓名字段和一个电话字段,我前端做一个选择下拉框,然后将姓名字段名和电话字段名放在下拉框中 下图为前端时间的代码示例 ``` <select name="select_sjlx" class="form-control" style="float:left;width:120px;margin-right:5px;"> <option value="none">时间类型</option> {% for k in sj %} <option value={{ sj[k] }}>{{ k }}</option> {% endfor %} </select> <input name="entryDatestart" placeholder="起始日期" id="entry-date-start" type="text" style="float:left;width:100px;margin-right:5px;" v-model="lookupType" class="form-control"> <input name="entryDatestop" placeholder="终止日期" id="entry-date-stop" type="text" style="float:left;width:100px;margin-right:5px;" v-model="lookupType" class="form-control"> ``` 时间类型为选择框,加入有两个变量,我现在通过name属性将时间类型的value值传递到后端。 ``` queryParams: function queryParams(params) { //设置查询参数 var param = { 'pageNumber' : params.pageNumber, 'pageSize' : params.pageSize, 'select_sjlx':$("#select_sjlx").val(), 'entryDatestart':$("#entryDatestart").val(), 'entryDatestop':$("#entryDatestop").val(), 'select_cxkm':$("#select_cxkm").val(), 'lookupcontent':$("#lookupcontent").val() //keyword:params.search, }; ``` 后端接收数据代码如下: ``` pageNumber=request.args.get('pageNumber',default=1, type=int) pageSize = request.args.get('pageSize', default=30, type=int) select_sjlx = request.args.get('select_sjlx') entryDatestart = request.args.get('entryDatestart') entryDatestop = request.args.get('entryDatestop') ``` 查询字符串如下: ``` if select_cxkm == 'ZF_id': rows = current_user.query.filter(User.字段名.ilike('%'+ lookupcontent +'%')).paginate( page=pageNumber, per_page=pageSize, error_out=False ) ``` 问题是:如何把查询字符串中的字段名更换为接受到的变量,变量名其实也是字段名,但是是字符串的格式。 我尝试用 ``` b = 'id' a= 'User.query.filter_by('+b+'=1).first()' a 'User.query.filter_by(id=1).first()' ``` 的方式处理,但是这个查询语句是一个字符串,怎么转换为查询语句
当sql语句中从两表中查询的两列模糊时,如何处理
``` string wax = comboBox1.Text + comboBox2.Text + comboBox3.Text;string s=comboBox1.Text+comboBox2.Text+comboBox3.Text; SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select " + wax + ",para," + s + " from 电缆参数,电缆参数1", m); chart2.Series[0].YValueMembers = wax;chart2.Series[1].YValueMembers = s; ``` 两组数(wax,s)都需要根据下拉框的值来选择列,启动时显示ambiguous column name: CHR111009(comboBox1.Text=CHR1,comboBox2.Text=1,c omboBox3.Text=1009) 也试过 ``` SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select " + wax + ",para from 电缆参数 union select " + s + ",para from 电缆参数1 ", m); ``` 显示 union前后所取得列数应一样 也试过 ``` string dbPath = @"D:\历年高考分数.db"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select " + wax + ",para from 电缆参数", m); SQLiteDataAdapter mAdapter1 = new SQLiteDataAdapter("select " + s + " from 电缆参数1", m); DataSet ds = new DataSet(); DataSet ds1 = new DataSet(); mAdapter.Fill(ds); mAdapter1.Fill(ds1); DataTable dt = ds.Tables[0]; DataTable dt1 = ds1.Tables[0]; //设置图表的数据源 chart2.DataSource = dt; //chart2.DataSource = dt1+dt; chart2.DataSource = dt1; ``` 启动时会显示找不到名为“para”的列。但表中有“para”列,可能 chart2.DataSource以最后出现的dt1为准。可不可以让wax,s分别是同一列的前20个数,后20个数 如果不行,应该怎么改
hibernate的查询数据重复问题
我有一个下拉菜单,我要从数据库中查询数据放到下来菜单上,但是从数据库中查出的数据有重复的,我用hql语句查询: “select distinct u form users u”,但是报错,有什么解决的办法么?或者还有其他方法?
sql语句中多表查询问题
``` string wax = comboBox1.Text + comboBox2.Text + comboBox3.Text;string s=comboBox1.Text+comboBox2.Text+comboBox3.Text; SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select " + wax + ",para," + s + " from 电缆参数,电缆参数1", m); chart2.Series[0].YValueMembers = wax;chart2.Series[1].YValueMembers = s; ``` 两组数都需要根据下拉框的值来选择列 启动时显示ambiguous column name: CHR111009(comboBox1.Text=CHR1,comboBox2.Text=1,comboBox3.Text=1009) 这要如何处理啊 若数据的套句都是用两遍 ``` string dbPath = @"D:\历年高考分数.db"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select " + wax + ",para from 电缆参数", m); SQLiteDataAdapter mAdapter1 = new SQLiteDataAdapter("select " + s + " from 电缆参数1", m); DataSet ds = new DataSet(); DataSet ds1 = new DataSet(); mAdapter.Fill(ds); mAdapter1.Fill(ds1); DataTable dt = ds.Tables[0]; DataTable dt1 = ds1.Tables[0]; //设置图表的数据源 chart2.DataSource = dt; //chart2.DataSource = dt1+dt; chart2.DataSource = dt1; ``` 启动时会显示找不到名为“para”的列。但表中有“para”列 ![图片说明](https://img-ask.csdn.net/upload/201909/11/1568170795_395287.png)
dl dt dd如何做下拉问题。
``` <dl class="yl_select"> <dt>下拉</dt> <dd> <ul> <li> <div class="yl_province">江西省</div> <ul> <li class="yl_city"> <span><i></i>南昌市</span> <ul style=""> <li class="yl_area">高新区</li> <li class="yl_area">新建区</li> <li class="yl_area">青山湖区</li> </ul> </li> <li class="yl_city"><span><i></i>抚州市</span></li> <li class="yl_city"><span><i></i>赣州市</span></li> </ul> </li> </ul> </dd> </dl> ``` 出来的样式是这样的: ![图片说明](https://img-ask.csdn.net/upload/201706/06/1496731940_334593.png) 把他做成下拉列表的,用来查询,然后我应该怎么做他才能选中值然后绑定到那个dt框中? ``` $(function(){ $("dl dd").hide(); $("dt").click(function(){ if ($(this).attr("state")=="show") { $(this).nextUntil("dt").hide(500) $(this).attr("state","hide"); }else{ $(this).nextUntil("dt").show(500); $(this).attr("state","show"); } }); }); ```
store参数的传递
<p><br><img src="/upload/attachment/127723/69047bb4-7133-3ff8-9256-0a12b3a6e382.png" alt=""><br>现在我已经把tbar加到window上了,</p> <p>window主要代码如下:</p> <p>tbar:['-',text_search,'-',btn_search],<br>items :[add_form]</p> <p> ------------------------------------------------------------</p> <p>var text_search= new Ext.form.TextField({<br>                name : 'textsearch',<br>                width : 200,<br>                emptyText : '请输入客户编号或名称!',<br>                listeners : {<br>                        'specialkey' : function(field, e) {<br>                            if (e.getKey() == Ext.EventObject.ENTER) {<br>                                        search();<br>                             }<br>                      }<br>                 }<br> });</p> <p>var search = function() {<br>    var conditional = text_search.getValue();<br>    taskCustomerStore.load({<br>            params : {<br>                 conditional : conditional       <br>            }<br>    });<br>};</p> <p>var btn_search= new Ext.Button({<br>    text : '查询',<br>    iconCls : 'icon-search',<br>    handler : search<br>});</p> <p>---------------------------------------------------</p> <p>var taskCustomerStore = new Ext.data.Store({<br>                    url : 'xxxx.action',<br>                    reader : new Ext.data.JsonReader({<br>                        root : 'root'<br>                    }, [{<br>                        name : 'CUSTOMERID',<br>                        type : 'string'<br>                    }, {<br>                        name : 'CUSTOMERNAME',<br>                        type : 'string'<br>                    }])<br>           });</p> <p>-------------------------------------------------------</p> <p>add_form上的多选下拉控件,我想用文本输入框模糊查询的结果集来做这里面的store,</p> <p>但是在后台取数据的时候,点击查询能得到文本框输入的内容conditional,但是在单击</p> <p>下拉列表框的时候后台的conditional为空,我想问的是怎么把查询的结果集</p> <p>(包含模糊查询的conditional)作为新的store,即store是随时更新的</p> <p>xtype : 'multicombo',<br>   width : 150,<br>   store : taskCustomerStore,<br>   fieldLabel : '包含客户',<br>   // valueField : 'CUSTOMERID',<br>   // displayField : 'CUSTOMERNAME',<br>   valueField : 'BRANCH_ID',<br>   displayField : 'BRANCH_NAME',<br>   allowBlank : false,<br>   editable : true,<br>   labelSeparator : ':',<br>   displaySeparator : ';',<br>   valueSeparator : ',',<br>   hiddenName : 'multicomboMapCust',<br>   mode : 'remote',<br>   triggerAction : 'all',<br>   allowBlank : true,<br>   loadingText : '加载中...',<br>   emptyText : '请选择',<br>   listeners : {<br>    'select' : function(multicombo, record, index) {<br>     multicomboMapCust = Ext.get('multicomboMapCust').getValue();<br>    }<br>   }<br>  }</p><br /><strong>问题补充:</strong><br />tbar的文本框输入的内容作为查询条件,单击查询按钮之后执行查询和store的更新,使多选下拉框的store是查询出来的结果<br /><strong>问题补充:</strong><br />------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ <br />一共就有一个store,这个store是下拉框的store <br /> <br />我想用文本框输入的内容作为查询条件,点击查询后,会查询出来一个结果集,查询按钮执行的是store的load方法,我想把这个结果集作为新的store<br /><strong>问题补充:</strong><br />qq911110 <br />现在问题不出在search方法上 <br />现在的问题是怎么把查询按钮的结果作为新的store <br />或者说是把文本框输入的内容传递给form里面下拉框的stor<br /><strong>问题补充:</strong><br />调用reload了,可是在form里面还是取不到文本框输入的值<br /><strong>问题补充:</strong><br />在window、的tbar上查询按钮单击的时候能取到值,但是在form里面的下拉俩表中取不到<br /><strong>问题补充:</strong><br />我要把查询的结果展示在 包含客户的下拉列表里面 <br /> <br /> <br />可是下拉列表里面是空的<br /><strong>问题补充:</strong><br /> <br /><img src="/upload/attachment/128076/d943910b-a24f-3c54-9193-ec53ad376cda.png" /> <br />现在的情况: <br /><pre name="code" class="java"> Connection - {conn-100019} Connection Connection - {conn-100019} Preparing Statement: SELECT * FROM TB_CUSTOMER_INFO where CUSTOMERNAME LIKE '%' || ? || '%' PreparedStatement - {pstm-100020} Executing Statement: SELECT * FROM TB_CUSTOMER_INFO where CUSTOMERNAME LIKE '%' || ? || '%' PreparedStatement - {pstm-100020} Parameters: [周村李] PreparedStatement - {pstm-100020} Types: [java.lang.String] ResultSet - {rset-100021} ResultSet ResultSet - {rset-100021} Header: [CUSTOMERID, CUSTOMERNAME, SHORT_CODE, CUSTOMERADD, CUSTOMERTEL, CUSTOMEROPERATOR, CUSTOMERTYPE, MANAGER_ID, CUSTOMERREGION, STATUS, BRANCH_ID, MARKET_ID, HIGH_BRANCH_ID] ResultSet - {rset-100021} Result: [1037030200624, 周村李娟商店, 1037030200624, 周村区萌水镇东李村, 13573341904, 李娟, 01024, 103703020003, 周村淄川大车04上午, 02, 03020100, null, null] ResultSet - {rset-100021} Result: [1037030200367, 周村李继德商店, 1037030200367, 周村区东门路87号, h13678634711, 李继德, 0501101, 103703020001, 周村淄川大车01上午, 02, 03020100, null, null] ResultSet - {rset-100021} Result: [1037030201076, 周村李执学百货店, 1037030201076, 周村区萌水镇官三村41号, 13455325428, 李执学, 01023, 103703020003, 周村淄川大车05上午, 02, 03020100, null, null] ResultSet - {rset-100021} Result: [1037030200682, 周村李贤珍商店, 1037030200682, 周村区辛街8号楼前, 2615673, 李贤珍, 0101101, 103703020001, 周村淄川大车09上午, 02, 03020100, null, null] ResultSet - {rset-100021} Result: [1037030201380, 周村李纪云百货店, 1037030201380, 周村区周隆路莫家庄16号, 6820444, 李纪云, 01023, 103703020001, 周村淄川大车02上午, 02, 03020100, null, null] ResultSet - {rset-100021} Result: [1037030201844, 周村李彬商店, 1037030201844, 萌水镇西衣村116号, 13864354663, 李彬, 01024, 103703020003, 周村淄川大车10上午, 02, 03020100, null, null] ResultSet - {rset-100021} Result: [1037030201176, 周村李家村英保综合商店, 1037030201176, 周村区南郊镇李家村, 15315231751, 侯英保, 01023, null, null, 03, 03020100, null, null] ResultSet - {rset-100021} Result: [1037030201701, 周村李庄代销店, 1037030201701, 萌水镇三衣大街中段, 6885026, 李庄, 01023, 103703020003, 周村淄川大车10上午, 02, 03020100, null, null] ResultSet - {rset-100021} Result: [1037030201935, 周村李卫百货店, 1037030201935, 周村青年路办事处东马村1-74号, 13953374622, 李卫, 0102301, 103703010008, 周村淄川大车05上午, 02, 03020100, null, null] ResultSet - {rset-100021} Result: [1037030201856, 周村李蒙百货店, 1037030201856, 周村南郊镇张楼村7号, 13884629332, 韩美, 01023, 103703020003, 周村淄川大车05上午, 02, 03020100, null, null] I18nInterceptor - after Locale=zh_CN I18nInterceptor - intercept } </pre> <br />这是我在点多选下拉列表的时候后台输出的值,可是在前台下拉列表里面没有数据 <br /><br /><strong>问题补充:</strong><br />我按照你说的,检查了 后台输出没错吧,前台的store里面也指定了josn格式 <br />配置也没错
为什么WinForm不能显示innerHTML拼接的表格?
以下是WinForm中的代码 ``` using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Security.Permissions; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml; using mshtml; namespace Project3 { [PermissionSet(SecurityAction.Demand, Name = "FullTrust")] [System.Runtime.InteropServices.ComVisibleAttribute(true)] public partial class Form1 : Form { public Form1() { InitializeComponent(); //winForm调用js的前提 webBrowser1.ObjectForScripting = this; } public void btnSelect(String val) { //javascript要调用winform时必须加这一句 this.webBrowser1.ObjectForScripting = this; //MessageBox.Show(val, "winForm窗口"); //调用winform里面的调用XML方法 XmlDocument Xml = new XmlDocument(); //读取xml(project3.xml) Xml.Load("project3.xml"); //获取根节点的所有子节点列表(sqldata) XmlNodeList list = Xml.DocumentElement.GetElementsByTagName("sqldata"); //为了获取row的个数(for循环次数) XmlNodeList list_1 = Xml.DocumentElement.GetElementsByTagName("row"); //foreach来遍历所有ReceiptFees为获取到val的同级Tag数据 foreach (XmlNode node in list) { for (int i = 0; i < list_1.Count; i++) { //遍历全部信息 if (val.Equals("全部")) { String s1 = node.ChildNodes[i].ChildNodes[0].InnerText;//No String s2 = node.ChildNodes[i].ChildNodes[1].InnerText;//ReceiptFees String s3 = node.ChildNodes[i].ChildNodes[2].InnerText;//MedicalContent String s4 = node.ChildNodes[i].ChildNodes[3].InnerText;//price String[] data = new String[4]; data[0] = s1; data[1] = s2; data[2] = s3; data[3] = s4; this.webBrowser1.Document.InvokeScript("showdata", data); } else { //当ReceiptFees的值equals等于val的值时,将node的所有子节点打印到html页面 if (node.ChildNodes[i].ChildNodes[1].InnerText.Equals(val)) { String s1 = node.ChildNodes[i].ChildNodes[0].InnerText;//No String s2 = node.ChildNodes[i].ChildNodes[1].InnerText;//ReceiptFees String s3 = node.ChildNodes[i].ChildNodes[2].InnerText;//MedicalContent String s4 = node.ChildNodes[i].ChildNodes[3].InnerText;//price String[] data = new String[4]; data[0] = s1; data[1] = s2; data[2] = s3; data[3] = s4; this.webBrowser1.Document.InvokeScript("showdata", data); } } } } } ``` 以下是HTML代码: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>未缴费处方项目信息</title> <link rel="stylesheet" href="style.css"> <script language="javascript" type="text/javascript"> function btnSelect() { //获取下拉框中的数据val var val = document.getElementById("3").value; //将下拉框获取到的费用数据传递给winform          window.external.btnSelect(val); } //被winForm调用来执行的方法(方法名与winForm中对应) </script> </head> <body> <div id="base" class="base"> <!-- 题头 --> <div id="1" class="title"> <h2 class="head_font">下方是你未缴费处方项目信息</h2> </div> <!-- 选择 --> <div id="2" class="choose"> <!-- 选择下拉框 --> <div id="" class="second_1"> <select id="3" class="select"> <option value="全部">全部</option> <option value="检查费">检查费</option> <option value="西药费">西药费</option> <option value="材料费">材料费</option> </select> </div> <!-- 选择按钮 --> <div id="" class="second_2"> <input id="4" class="input" type="submit" value="查询XML信息" onclick="btnSelect()" /> </div> </div> <!-- 表格 --> <div class="table"> <table border="0" cellspacing="0" cellpadding="0" id="t_1"> <tr class="table_top"> <td>项目编号</td> <td>项目类型</td> <td>项目名称</td> <td>项目价格</td> </tr> </table> </div> </div> </body> <script language="javascript" type="text/javascript"> function showdata(s1, s2, s3, s4) { **//alert(s1); alert(s2); alert(s3); alert(s4); 经过测试这一句是执行成功的!** var htmls = "<TR><TD>" + s1 + "</TD><TD>" + s2 + "</TD><TD>" + s3 + "</TD><TD>" + s4 + "</TD></TR>"; **document.getElementById("t_1").innerHTML += htmls;**//这一句执行失败,请各位帮帮忙看看为什么! } </script> </html> ```
JSP搜索联想框,新手求指教。
不是用的SSH框架,DAO用JDBC,项目赶工,DAO和Service整合在了一起,我是半路插入的~各位大神先别吐槽……咱先把问题解决再美化~谢谢 页面结构如下 ``` <input name="accountName" id="accountName" class="yhgl_ser required inputElem" onkeyup="getLinkData();" value="<%StringHelper.filterHTML(out, request.getParameter("accountName"));%>" /> <div id="popup" style="position: absolute;"> <table width="100%" bgcolor="#fffafa"> <tbody id="popupBody"></tbody> </table> </div> ``` JS代码如下(借鉴了很多网上的JS方法) ``` <script type="text/javascript"> function getLinkData() { var popupDiv = document.getElementById("info");//获得对应的div对象 var popupBody = document.getElementById("popupBody");//获得对应的tbody对象 var linkDataProperty = document.getElementById("accountName"); //获得对应的输入框对象 clearModels();//清除联想输入提示框的内容 //利用ajax获取后台的模糊查询的数据,并且封装成下拉列表的形式展现出来 $.ajax({ type : "post",//提交的方法为post //对应的Action提交的路径 url : "<%configureProvider.format(out, URLVariable.SEARCH_ACCOUNT);%>", data:{linkDataProperty:linkDataProperty.value},//从前台传递到后台的查询语句的参数 dataType : "json", //从Action中返回的数据的类型为json类型的 error:function(){ alert("没有对应的数据,请查看输入的查询条件!"); }, success : function(data) {//当Ajax提交成功时调用的方法 if(data.length==0){return;} setOffsets();//设置联想输入下拉列表提示框的位置 var tr,td,text; for (var i = 0; i < data.length; i++) {//根据返回的值,手动的拼tbody的内容 text = document.createTextNode(data[i].linkDataProperty);//从Action中返回的数据中取出linkDataProperty的值 td = document.createElement("td");//创建一个td的对象 tr = document.createElement("tr");//创建一个tr的对象 td.mouseOver = function(){this.className="mouseOver;"}; td.mouseOut = function(){this.className="mouseOut;"}; td.onclick = function(){populateModel(this)};//单击td是的方法为populateModel td.appendChild(text); tr.appendChild(td); popupBody.appendChild(tr); } }}); //点击下拉列表中的某个选项时调用的方法 function populateModel(cell) { clearSelect(); linkDataProperty.value = cell.firstChild.nodeValue; //initOtherData(linkDataProperty.value);利用输入框中的数据调用其他方法,初始化其他数据 clearModels();//清除自动完成行 } //清除自动完成行,只要tbody有子节点就删除掉,并且将将外围的div的边框属性设置为不可见的 function clearModels() { while (popupBody.childNodes.length > 0) { popupBody.removeChild(popupBody.firstChild); } popupDiv.style.border = "none"; } //设置下拉列表的位置和样式 function setOffsets() { var width = linkDataProperty.offsetWidth;//获取linkDataProperty输入框的相对宽度 var left = getLeft(linkDataProperty); var top = getTop(linkDataProperty) + linkDataProperty.offsetHeight; popupDiv.style.border = "black 1px solid"; popupDiv.style.left = left + "px"; popupDiv.style.top = top + "px"; popupDiv.style.width = width + "px"; } //获取指定元素在页面中的宽度起始位置 function getLeft(e) { var offset = e.offsetLeft; if (e.offsetParent != null) { offset += getLeft(e.offsetParent); } return offset; } //获取指定元素在页面中的高度起始位置 function getTop(e) { var offset = e.offsetTop; if (e.offsetParent != null) { offset += getTop(e.offsetParent); } return offset; } } //清空输入框中的数据 function clearSelect() { var linkDataProperty=document.getElementById(linkDataProperty); linkDataProperty.value=""; } </script> ``` Servlet代码如下 ``` protected void processPost(HttpServletRequest request, HttpServletResponse response, ServiceSession serviceSession) throws Throwable { //往后传数据 System.out.println("进入servlet,将传入后台:"+request.getParameter("accountName")); //获得DAO服务 ZhglManage manage = serviceSession.getService(ZhglManage.class); //获得前台数据并往后台发送,同时接收返回的结果 String accounts = manage.searchAccountInOneResult(request.getParameter("accountName")); //往前端发送 PrintWriter out = response.getWriter(); System.out.println("返回servlet,即将返回获得的结果:"+accounts+" 给页面"); out.print(accounts); out.close(); } ``` DAO加Service代码如下: ``` public String searchAccountInOneResult(String inputing) throws Throwable { //尝试了Gson但也没成功 Gson gson = new Gson(); System.out.println("进入DAO,传入的参数是:"+inputing); //map方式 Map<String, String> rsMap = new HashMap<String,String>(); String account = ""; String key = ""; //获得连接 Connection conn = getConnection(); //准备SQL语句,获得单列账号信息 String sql = "SELECT @ROW := @ROW +1 AS ROW , t.F02 AS accountName FROM S61.T6110 t, ( SELECT @ROW :=0 )r WHERE t.F02 LIKE '"+inputing+"%' LIMIT 10"; PreparedStatement pstm = conn.prepareStatement(sql); //执行SQL ResultSet rs = pstm.executeQuery(); //获得结果 while(rs.next()){ //map方式 key = rs.getString("accountName"); account = rs.getString("accountName"); rsMap.put(key, account); } String temp = gson.toJson(rsMap); System.out.println("正在打印gson:"+temp); return temp; } ``` 然后控制台是这样的 进入servlet,将传入后台:1 进入DAO,传入的参数是:1 正在打印gson:{"12342@qq.com":"12342@qq.com","12344@qq.com":"12344@qq.com","100@qq.com":"100@qq.com"} 返回servlet,即将返回获得的结果:{"12342@qq.com":"12342@qq.com","12344@qq.com":"12344@qq.com","100@qq.com":"100@qq.com"} 给页面 firefox控制台和页面效果是这样的 ![图片说明](https://img-ask.csdn.net/upload/201505/18/1431943341_591979.png) 我对JS什么的不怎么懂,来请教下各位我哪里有问题,解决方法或者说解决思路应该是怎样的
qt 运行出来的框图有残缺
# cpp文件 ``` #include "vsbak.h" #include "ui_vsbak.h" #include <QSettings> #include <QFileDialog> #include<QTime> #include<QtDebug> #include <QMessageBox> #define CONFIG_FILE "config.ini" const QString EXCLUDE_FILE = "/home/hu/project2";// 這個文件沒啥用 Vsbak::Vsbak(QWidget *parent) : QWidget(parent) , ui(new Ui::Vsbak) { ui->setupUi(this); QSettings *configIniRead = new QSettings(CONFIG_FILE, QSettings::IniFormat); dir_src = configIniRead->value("/main/bak_src").toString(); dir_dest = configIniRead->value("/main/bak_dest").toString(); // 配置文件里面有目标地址 gpg_key = configIniRead->value("/main/gpg_key").toString(); exclude_from = configIniRead->value("exclude/exclude").toString(); delete configIniRead; // init bash terminal //QProcess可以用于启动外部程序 cmd = new QProcess(this);// 因为与父类直接释放内存 // Sets the working directory to dir. QProcess will start the process in this directory. //The default behavior is to start the process in the working directory of the calling process. cmd->setWorkingDirectory(dir_src); //This signal is emitted when the process has made new data available //through its standard output channel (stdout). It is emitted regardless of the current read channel. connect(cmd, &QProcess::readyReadStandardOutput, this, &Vsbak::on_readyReadStandardOutput); connect(cmd, &QProcess::readyReadStandardError, this, &Vsbak::on_readyReadStandardError); ui->lineEdit->setText(dir_src); ui->lineEdit_2->setText(dir_dest); // 在ui里直接设置这个地址 // init comboBox init_comboBox(); // init radiobutton: choice full ui->radioButton->setChecked(true); ui->checkBox->setChecked(false); ui->checkBox_2->setEnabled(false); ui->checkBox_3->setEnabled(false); } /* * 设置最大可见数目为5,是不是不合理? */ void Vsbak::init_comboBox() // 找压缩好的文件 Combobox 下拉菜单 { /* * 1. 用一个对象进入dir-dest目录下 * 2. 过滤掉包含后追的文件 * 3. 获取被过滤的文件理解 */ // find all backup.tar.gz files //The QDir class provides access to directory structures and their contents. 不仅能看到结构,还可以看到目录 QDir *curDir = new QDir(dir_dest); //The QStringList class provides a list of strings. //可以让你提取一个新的列表只包含这些字符串包含一个特定的字符串(或匹配特定正则表达式) QStringList filter; // 过渡成一个目录 filter << "*.tar.gz" << "*.tar.gz.gpg"; curDir->setNameFilters(filter); // 过滤掉特定的目录下的文件 //Returns a list of QFileInfo objects for all the files and directories in the directory //QDir::entryInfoList()会获取该目录下所有目录和文件的QFileInfo对象的列表 QList<QFileInfo> *tarFileInfo = new QList<QFileInfo>(curDir->entryInfoList(filter)); /* * dir_dest 里面存放的其实都是被压缩的文件,所以用上面的后缀直接进行过滤 * 1. 设置最大的可见数目为5 * 2. 看目录里面有多少,然后放入这个comboBox * 3. 获取被过滤的文件 * 4. 按照顺序放入到combobox中 */ ui->comboBox->clear(); ui->comboBox->setMaxVisibleItems(5); // 最大可见数目 5 //The string will be inserted as the first item in the combobox. ui->comboBox->setInsertPolicy(QComboBox::InsertAtTop); for (int i=0; i< tarFileInfo->count(); i++)// count()只是计算里面的数量,tarFileinfo实际上是一个文件列表 ui->comboBox->addItem(tarFileInfo->at(i).fileName()); } Vsbak::~Vsbak() { delete ui; // 有何作用 if(cmd->state() == QProcess::Running){ cmd->terminate(); cmd->waitForFinished(); } } void Vsbak::on_readyReadStandardOutput() { // QString out = QString::fromLocal8Bit(cmd->readAllStandardOutput()); // ui->label_4->setText(out); } void Vsbak::on_readyReadStandardError() { QMessageBox::information(0, "Error", cmd->readAllStandardError()); } // change dir_src void Vsbak::on_toolButton_clicked() { /* * 1. 或许dir_src的文件目录名称 * 2. 将dir_src的文件目录名写到lineEdit上面 * 3. 更新配置文件里面的信息 * 4. 设置工作目录 * */ QString dirname; dirname = QFileDialog::getExistingDirectory(this, tr("Open Directory"), dir_src, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(dirname.isEmpty()) return; else { dir_src = dirname; ui->lineEdit->setText(dir_src); QSettings *configIniWrite = new QSettings(CONFIG_FILE, QSettings::IniFormat); configIniWrite->setValue("/main/bak_src", dir_src); delete configIniWrite; cmd->setWorkingDirectory(dir_src); ui->label_4->setText("change source dir sucess!"); } } // change dir_dest void Vsbak::on_toolButton_2_clicked() { QString dirname; // getExistingDirectory 只获取文件夹 dirname = QFileDialog::getExistingDirectory(this, tr("Open Directory"), dir_dest, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(dirname.isEmpty()) return; else { dir_dest = dirname; ui->lineEdit_2->setText(dir_dest); QSettings *configIniWrite = new QSettings(CONFIG_FILE, QSettings::IniFormat); configIniWrite->setValue("/main/bak_dest", dir_dest); delete configIniWrite; ui->label_4->setText("change dest dir sucess!"); } } int Vsbak::get_min(QDateTime curTime) { QSettings *configIniReadWrite = new QSettings(CONFIG_FILE, QSettings::IniFormat); int lastTime = configIniReadWrite->value("/main/last_time").toInt();// 将值转化成整形 configIniReadWrite->setValue("/main/last_time", curTime.toTime_t()); delete configIniReadWrite; int minDiff = (curTime.toTime_t()-lastTime) / 60 + 1; return minDiff; } void Vsbak::on_checkBox_clicked() { if(ui->checkBox->isChecked()){ ui->checkBox_2->setEnabled(true); ui->checkBox_3->setEnabled(true); } else{ ui->checkBox_2->setEnabled(false); ui->checkBox_3->setEnabled(false); } } /* * 3 个 String类型 * targz:time + full.tar.gz * cmd_find:find ./ -type f | grep -v \'Permission denied\' > TEPLIST * cmd_tar *目录列表 * * * */ void Vsbak::on_pushButton_clicked(){ // The QDateTime class provides date and time functions. // 调用QDatetime里面的一个函数,赋给另一个QDatetime的类型 QDateTime current_date_time = QDateTime::currentDateTime(); // 初始化三个String类型 QString targz, cmd_find, cmd_tar; //RadioButton presents an option button that can be toggled on (checked) or off (unchecked). //Radio buttons are typically used to select one option from a set of options. //Use isChecked() to see if a particular button is selected. if(ui->radioButton->isChecked()){ // 如果radiobutton 被选择了,那么就进行备份,如果没有就只输出时间 // Linux find命令用来在指定目录下查找文件。 // 将目前目录其其下子目录中所有一般文件列出 # find . -type f // Linux grep 命令用于查找文件里符合条件的字符串。 // -v 或 --revert-match : 显示不包含匹配文本的所有行。 // 反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。 // ./ 表示当前目录的全路径 当前目录的全路径 没有这个 \'Permission denied\'???? //linux的命令,查找文件然后设置权限 // 这个是不管修改不修改,全部列出来 cmd_find = "find ./ -type f | grep -v \'Permission denied\' > TEPLIST";// 这个功能是什么呢 targz = current_date_time.toString("yyyy-MM-dd_hh.mm.ss") + ".full.tar.gz"; }else{ // 会替换掉前面的百分之1,替换规则是从小到大 //get_min是一个函数,看它具体怎么实现的,应该是循环遍历了current_date_time,找到最小???? int minDiff = get_min(current_date_time); // 获得是最小的查值 // 完成命令,把距离最新一次全部修改的文件单独列出来 cmd_find = QString("find ./ -mmin -%1 -type f | grep -v \'Permission denied\' > TEPLIST").arg(minDiff); targz = current_date_time.toString("yyyy-MM-dd_hh.mm.ss") + ".inc.tar.gz"; } // exclude from 是一个配置目录 // tar命令 //-v或--verbose 显示指令执行过程 // --totals 备份文件建立后,列出文件大小 //cmd_tar这是压缩tar的linux命令,将exclude里面的文件全部列出来,进行压缩 cmd_tar = QString("tar --verbose --totals --exclude-vcs %1 --files-from=TEPLIST -czf %2/%3").arg(exclude_from).arg(dir_dest).arg(targz);//?5 // 向调试器输出命令的执行结果,方便调试排错 qDebug()<< cmd_find << endl << cmd_tar<< endl; // 下面整个过程就是执行这个命令 QStringList cmd_pipe;// 初始化了一个String目录 cmd_pipe << "-c" << cmd_find; // 说明这个cmd-pipe已经变成了一个linux的cmd命令了 cmd->start("/bin/bash",cmd_pipe); // 开始一个程序 cmd->waitForFinished(); cmd->close(); cmd->start(cmd_tar);// cmd_tar 也变成了一个程序 cmd->waitForFinished(); cmd->close(); cmd->start("rm -f TEPLIST");// 强制删除teplist, teplist 就是临时文件 cmd->waitForFinished(); /*********** Encrypting*************/ // gpg-k 增加公共钥匙 if(ui->checkBox->isChecked()){ QString cmd_enc; QString cmd_isKey = "gpg -k " + gpg_key; cmd->start(cmd_isKey); cmd->waitForFinished(); QString out = QString::fromLocal8Bit(cmd->readAllStandardOutput());// 这个输出就不是很理解为什么 if(out.isEmpty()) // -o, --output FILE write output to FILE // c 说是使用对称加密,看起来很奇怪 cmd_enc = QString("gpg -c -o %1/%2.gpg %1/%2").arg(dir_dest).arg(targz); else // e 是加密数据 , 针对 用户 id 进行加密 cmd_enc = QString("gpg -e -r %1 -o %2/%3.gpg %2/%3").arg(gpg_key).arg(dir_dest).arg(targz); cmd->start(cmd_enc); cmd->waitForFinished(); if(false == ui->checkBox_2->isChecked()){ QString cmd_rm = QString("rm %1/%2.gpg").arg(dir_dest).arg(targz); cmd->start(cmd_rm); cmd->waitForFinished(); } if(false == ui->checkBox_3->isChecked()){ QString cmd_rm = QString("rm %1/%2").arg(dir_dest).arg(targz); cmd->start(cmd_rm); cmd->waitForFinished(); } /* * /home/hu/桌面/vsbak/backup/2019-11-13_19.38.57.full.tar.gz * */ // ui->comboBox->addItem(targz); init_comboBox(); } } void Vsbak::on_pushButton_2_clicked(){ QString targz = ui->comboBox->currentText(); if (targz.endsWith(".tar.gz.gpg")){ targz = targz.remove(".gpg"); QString cmd_enc; QString cmd_isKey = "gpg -k " + gpg_key; cmd->start(cmd_isKey); cmd->waitForFinished(); QString out = QString::fromLocal8Bit(cmd->readAllStandardOutput()); if(out.isEmpty()) cmd_enc = QString("gpg -d -o %1/%2 %1/%2.gpg").arg(dir_dest).arg(targz); else cmd_enc = QString("gpg -d -r %1 -o %2/%3 %2/%3.gpg").arg(gpg_key).arg(dir_dest).arg(targz); cmd->start(cmd_enc); cmd->waitForFinished(); } QString cmd_str = QString("tar -xvf %1/%2").arg(dir_dest).arg(targz); qDebug() << cmd_str; cmd->start(cmd_str); cmd->waitForFinished(); } ``` 上面是cpp文件 下面是 # h文件 #ifndef VSBAK_H #define VSBAK_H #include <QWidget> #include<QProcess> QT_BEGIN_NAMESPACE namespace Ui { class Vsbak; } QT_END_NAMESPACE class Vsbak : public QWidget { Q_OBJECT public: Vsbak(QWidget *parent = nullptr); ~Vsbak(); private slots: void on_readyReadStandardOutput(); void on_readyReadStandardError(); void on_toolButton_clicked(); void on_toolButton_2_clicked(); void on_pushButton_clicked(); void on_pushButton_2_clicked(); void on_checkBox_clicked(); private: Ui::Vsbak *ui; QProcess *cmd; QString dir_dest; QString dir_src; QString gpg_key; QString exclude_from; void init_comboBox(); int get_min(QDateTime curTime);// 获得整形 }; #endif // VSBAK_H 我运行之后出来的qt界面,原本是可以下拉选择的,但是都没有反映,这是为啥
javaweb 用户可以自由选择出现的行列数(每页要显示多少);
![图片说明](https://img-ask.csdn.net/upload/201903/31/1554038333_26492.png) 我输入自己想要的行列数,比如5行,他会变成5行,但是如果再点下面的页码就又变成原来的显示行数 ``` <%@ page contentType="text/html;charset=UTF-8"%> <%response.setHeader("Pragma","No-cache"); %> <%response.setHeader("Cache-Control","no-cache"); %> <%response.setHeader("Expires","0");%> <%@ page import="cn.jbit.pagination.dao.PageDao" %> <%@ page import="cn.jbit.pagination.bean.Topic" %> <%@ page import="java.util.List" %> <% String pageNumber = request.getParameter("pageNumber"); //显示第几页 String getNumber=request.getParameter("inp"); if(getNumber== null ||getNumber.equals("")){ getNumber="4"; } if(pageNumber == null || pageNumber.equals("")){ //如果没有此参数为空 pageNumber = "1"; //缺省显示第一页 } int number = Integer.parseInt(pageNumber); //转成整数类型 int RECORD_COUNT = Integer.parseInt(getNumber); //每页显示的数据条数 int start = 0; //从第几条开始 int end = 0; //到第几条结束 start = (number - 1) * RECORD_COUNT; end = number * RECORD_COUNT; System.out.println("start:"+start); System.out.println("end:"+end); PageDao dao = new PageDao(); List<Topic> topics = dao.list(start,end); int count = dao.totalCount(); //总条数 int total = (count - (count%RECORD_COUNT))/RECORD_COUNT; //总页数 if(count % RECORD_COUNT != 0){ total++; } System.out.println("++"+getNumber); System.out.println("++RECORD_COUNT"+RECORD_COUNT); %> <html> <head> <script language='Javascript'> function selectShow(){ var getnumber=document.getElementById("select"); var getvalue=document.getElementById("select").value; document.location='index.jsp?pageNumber='+getvalue+'&getNumber=<%= getNumber%>'; } function load() { var getnumber=document.getElementById("select"); getnumber.selectedIndex = <%=pageNumber%> - 1; //下拉菜单的索引号 } function on(){ var getvalue=document.getElementById("input").value; alert(getvalue) document.location='index.jsp?pageNumber=1&getNumber='+getvalue; } </script> <title>航班查询</title> </head> <style> a{text-decoration:none;} </style> <body onload="load()"> <br/> <center> 自定义你要显示的行数:<br/> <form action="index.jsp?pageNumber=1&getNumber=<%=getNumber%>" method="post"><br/> <input name="inp" id="input" value="<%= RECORD_COUNT%>"/> <input type="submit" value="onclick" name="but" onclick="on()"/> </form> <table width='40%' > <tr bgcolor='pink'> <td width='30%' >专题编号</td> <td width='50%'>专题名称</td> </tr> <%for(int i = 0;i < topics.size();i++){ %> <tr> <td width='30%'><%=topics.get(i).getTid() %></td> <td width='50%'><%=topics.get(i).getTname() %></td> </tr> <%} %> </table> <br/> <br/> 页码: <a href="index.jsp?pageNumber=1&getNumber=<%=getNumber%>" >&nbsp;&nbsp;首页</a>&nbsp;&nbsp;&nbsp; <%for(int i = 1;i <= total;i++) {%> <a href="index.jsp?pageNumber=<%=i%>&getNumber=<%=getNumber%>"><%=i%></a>&nbsp;&nbsp;&nbsp; <%}%> <a href="index.jsp?pageNumber=<%=total%>&getNumber=<%=getNumber%>">末页</a> <select id="select" onchange="selectShow()"> <%for(int i = 1;i <= total;i++) {%> <option value="<%=i%>" ><%=i%></option> <%}%> </select> </center> </body> </html> ```
EXT 二级联动 第二级显示不出来值.
问题如下:二级下拉框没有值显示...后台能取到值,但查了老久不知道为什么就是显示不出来.代码如下: [code="java"]function start(){ /** * 查询所有大类 */ var areaProxy = new Ext.data.HttpProxy({ url : "/iuseprice/priceType/findArea.action" }) var areaList = new Ext.data.Record.create([{ name : "area", mapping : "area" }]) var areaReader = new Ext.data.JsonReader({},areaList); var areaStore = new Ext.data.Store({ proxy : areaProxy, reader : areaReader }); var townshipStore = getTownship(''); var hidden = new Ext.form.Hidden({ id:"_areaId", name:"area.areaId", width:0 }) /** * 初始Form */ var loggingForm = new Ext.FormPanel({ frame : false, layout : "form", url : "", renderTo : "_addPriceType", heigth : "100%", width : "100%", border : false, items : [{//煤炭类型设置 xtype : 'fieldset', title : '煤炭类型设置', layout : 'column', width : "70%", items : [{//第一行 xtype : 'fieldset', title : '煤矿设置', layout : 'column', height : '100%', width : "100%", columnWidth : 1, labelWidth : 60, items : [{ layout : "form", border : false, columnWidth : .2, items : [ areaComboBox = new Ext.form.ComboBox({ store:areaStore, fieldLabel : "区域名称", displayField : "area", valueField : "area", id:"areaCode", hiddenName:"area.area", width : 120, triggerAction : "all", mode : "remote", value : "--请选择--", forceSelection : true, selectOnFocus : true, typeAhead : true, hiddenName : "areaName", listeners : { 'select' : function(areaComboBox){ townshipComboBox.enable(); townshipComboBox.clearValue() ; var id = Ext.getCmp("areaCode").getValue(); alert(id) townshipStore.reload({params:{areaName:id}}); } } }) ] },{ layout : "form", border : false, columnWidth : .2, items : [ townshipComboBox = new Ext.form.ComboBox({ store:townshipStore, fieldLabel : "乡镇名称", displayField : "township", valueField : "areaId", id:"_township", hiddenName :"area.township", width : 120, triggerAction : "all", mode : "remote", value : "--请选择--", forceSelection : true, selectOnFocus : true, typeAhead : true, disabled : true }) ] },{ layout : "form", border : false, columnWidth : .2, items : [{ xtype : "textfield", width : 120, fieldLabel : "煤矿名称" }] },{ layout : "form", border : false, columnWidth : .05, items : [{ xtype : "button", text : '设置' }] }] }] }] }); } /** * 通过区域名称查询乡镇 */ function getTownship(areaName2){ var townshipProxy = new Ext.data.HttpProxy({ url : "/iuseprice/area/findTownshipByAreaName.action" }); var townshipList = new Ext.data.Record.create([{ name : "areaId", type : "int", mapping : "areaId" },{ name : "township", type : "string", mapping : "township" }]); var townshipReader = new Ext.data.JsonReader(townshipList); var townshipStore1 = new Ext.data.Store({ proxy : townshipProxy, reader : townshipReader }); // townshipStore1.load({ // params : {areaName:areaName2} // }); return townshipStore1; }[/code]
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
2020 年,大火的 Python 和 JavaScript 是否会被取而代之?
Python 和 JavaScript 是目前最火的两大编程语言,但是2020 年,什么编程语言将会取而代之呢? 作者 |Richard Kenneth Eng 译者 |明明如月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: Python 和 JavaScript 是目前最火的两大编程语言。然而,他们不可能永远屹立不倒。最终,必将像其他编程语言一...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
立即提问