如下所示:当文本框ab中输入值时,如果把该值传到
下面的sql中,不能增加按钮之类的!
<input type="text" size="22"  name="ab">
<br>
<select name="port_name"  style="width:168px;">
  <%
rs = stmt.executeQuery("SELECT * FROM dc_fctcusta where ab=?");
   while(rs.next()){
out.print("<option value="+rs.getString("PORT_NO")+">"+rs.getString("PORT_NO")+"</option>");
               }
   rs.close();
%>
</select>

解决方案 »

  1.   

    這個有點難度哇!關注一下!因為你現在是js來改變JAVA了!沒弄過!
      

  2.   

    感觉好像少了东西
    out.print(" <option value="+rs.getString("PORT_NO")+">"+"+rs.getString("PORT_NO")+"+" </option>"); 
      

  3.   

    楼主搞笑的吧,
    客户端的数据不通过Http请求,怎么发送到服务端去?
    input type="text" size="22"  name="ab"> 《--客户端的数据---》
    <br> 
    <select name="port_name"  style="width:168px;"> 
    《!--服务端--》
      <% 
    rs = stmt.executeQuery("SELECT * FROM dc_fctcusta where ab=?"); 
      while(rs.next()){ 
    out.print(" <option value="+rs.getString("PORT_NO")+">"+rs.getString("PORT_NO")+" </option>"); 
                  } 
      rs.close(); 
    %> 
    建议你在input 的onblur里面写一个js函数发送ajax请求,并传递你的参数过去,不过这样也实现不了你的需求,页面的设计方式就存在问题
      

  4.   

    用 AJAX写 非常简单
    @hxw  20080602
    */
    //回调函数  简单回调函数 
    function showesay(dataResponse)
    {
     var data = eval('(' + dataResponse.responseText + ')');
     var str='';
     str+='<ul>';
     str+='<li>'+data.param1;+'</li>';
     str+='<li>'+data.param2;+'</li>';
     str+='</ul>';
     document.getElementById("content").innerHTML=str;
    }
    //回调函数  复杂回调函数
    function showcomplex(dataResponse)
    {
     var data = eval('(' + dataResponse.responseText + ')');
     var str='';
     for(var i=0;i<data.js.length;i++)
     { 
     str+='<ul>';
     str+='<li>'+data.js[i].id+'</li>';
     str+='<li>'+data.js[i].age+'</li>';
     str+='<li>'+data.js[i].name+'</li>';
     str+='<li>'+data.js[i].address+'</li>';
     str+='</ul>';
     }
     document.getElementById("content").innerHTML=str;
    }
    //获取简单的json数据
    function getesay(){
     var url = 'test.do';
      var pars = 'method=getEasy';
      var ajax = new Ajax.Request(
       url,
       {method:'post',parameters:pars,onComplete:showesay}
      );  
    }
    //获取对象级复杂数据
    function getcomplex(){
     var url = 'test.do';
      var pars = 'method=getComplex';
      var ajax = new Ajax.Request(
       url,
       {method:'post',parameters:pars,onComplete:showcomplex}
      );  
    }///////////////////////////////////////struts-config.xml 
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
      <data-sources />
      <form-beans />
      <global-exceptions />
      <global-forwards />
      <action-mappings >
        <action path="/test" parameter="method" type="com.json.struts.action.TestAction">
       </action>
        
      </action-mappings>  <message-resources parameter="com.json.struts.ApplicationResources" />
    </struts-config> ////////////////////////////////TestAction.java/*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     */
    package com.json.struts.action;import java.io.PrintWriter;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.actions.DispatchAction;
    import net.sf.json.*;/**
     * @author hxw
     *
     */
    public class TestAction extends DispatchAction {
      /**
      * 获取简单组合数据
      */
     public ActionForward getEasy(ActionMapping mapping, ActionForm form,
       HttpServletRequest request, HttpServletResponse response) {
      response.setContentType("text/html; charset=GBK");
      try
      {
       PrintWriter out = response.getWriter();
       //这里的数据拼装一般是从数据库查询来的
       JSONObject jsonObject = new JSONObject();
          jsonObject.put("param1", "变量一");
          jsonObject.put("param2", "变量二");
       out.print(jsonObject.toString());
       out.flush();
       out.close();
       return null;
      }catch(Exception e)
      {
       e.printStackTrace();
       return null;
      }
      }
     /**
      * 获取复杂组合数据
      */
     public ActionForward getComplex(ActionMapping mapping, ActionForm form,
       HttpServletRequest request, HttpServletResponse response) {
      response.setContentType("text/html; charset=GBK");
      try
      {
       PrintWriter out = response.getWriter();
       JSONObject obj = new JSONObject();
       JSONArray js = new JSONArray();
       //这里的数据拼装一般是从数据库查询来的
        for(int i=0;i<3;i++)
        {
         JSONObject objtemp = new JSONObject();
         objtemp.put("id", i);
         objtemp.put("age", "23");
         objtemp.put("name", "test"+i);
         objtemp.put("address", "test");
         js.add(objtemp);
        }
       obj.put("js",js);
             out.print(obj.toString());
      }catch(Exception e)
      {
       e.printStackTrace();
       System.out.print("消费明细json存储异常");
      }
      return null;
     }
    }////////////////////////////test.jsp
    <%@ page language="java" import="java.util.*" contentType="text/html;charset=gbk"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>json练习</title>
        
     <meta http-equiv="pragma" content="no-cache">
     <meta http-equiv="cache-control" content="no-cache">
     <meta http-equiv="expires" content="0">    
     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     <meta http-equiv="description" content="This is my page">
     <script type="text/javascript"  src="js/prototype.js"></script>
        <script type="text/javascript"  src="js/toolhxw.js"></script>
        </head>
      
      <body>
      <div id="func" >
      <a href='javascript:getesay()'>获取简单组合数据</a>
      <a href='javascript:getcomplex()'>获取复杂组合数据</a>
      </div>
        <div id="content">
        正在获取内容...
        </div>
      </body>
    </html>
      

  5.   

    在select里加点击事件,使用js得到需要传的参数
      

  6.   

    客户端代码不通过请求怎么和服务器端互交?目前只有ajax能解决了
      

  7.   

    给input标签加onkeypress, onkeydown这两个事件来处理。当这两个事件触发的时候调用一个ajax方法,并且取得input的value,将value值传给服务器。服务器取得参数并且返回一个list集合,页面再遍历加载到select标签。