Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从动态选择列表中检索值_Java_Javascript_Html_Jsp - Fatal编程技术网

Java 从动态选择列表中检索值

Java 从动态选择列表中检索值,java,javascript,html,jsp,Java,Javascript,Html,Jsp,我正在从事一个jsp项目,在这个项目中我有一个动态选择列表。此列表中的值根据在第一个选择列表中选择的值而变化。 代码如下: <script language="JavaScript" type="text/javascript"> function optionsChange(){ var service = document.getElementById("service").value; if(service == 'GSM'){ do

我正在从事一个jsp项目,在这个项目中我有一个动态选择列表。此列表中的值根据在第一个选择列表中选择的值而变化。 代码如下:

<script language="JavaScript" type="text/javascript">
function optionsChange(){   
    var service = document.getElementById("service").value;
    if(service == 'GSM'){   
        document.getElementById("cdmaService").value= '';
        document.getElementById("cdmaService").style.display = 'none';
        document.getElementById("gsmService").style.display = 'block';
        $('gsmService').attr('name', 'services');
    }else if(service == 'CDMA'){
        document.getElementById("gsmService").value= '';
        document.getElementById("gsmService").style.display = 'none';
        document.getElementById("cdmaService").style.display = 'block';
        $('cdmaService').attr('name', 'services');
    }
  }
</script>

<select id="service" onChange="javascript:optionsChange();">
            <option value="GSM">GSM</option>
            <option value="CDMA">CDMA</option>
</select>

<td id="gsmService" ><select name="services" > 

            <option value="COMBO OFFER">COMBO OFFER</option>  
            <option value="CRICKET">CRICKET</option>
            <option value="ASTRO">ASTRO</option>
</select>   
</td>

<td id="cdmaService" style="display:none"><select name="services" >
            <option value="COMBO OFFER CDMA">COMBO OFFER CDMA</option>
             <option value="WIN THE DREAM">WIN THE DREAM</option>
            <option value="VOICE CHAT">VOICE CHAT</option>          
        </select>
 </td>
现在,当用户选择一项服务,比如说GSM,然后从第二个列表中选择一项服务,比如说ASTRO。他点击一个按钮,该按钮将他重定向到下一页,在那里他看到ASTRO打印。这个很好用。 但是如果用户从第一个列表中选择CDMA,然后从第二个列表中选择语音聊天。它还在下一页打印ASTRO。它应该打印语音聊天

这是提交表格的方法:

<script language=javascript>

function submitForm(actionStr)
{
    if(actionStr=="User Details")
    {
        document.login.action="showUsrDetail.jsp";
        document.login.submit();
    } 
}
这是按钮的代码:

<input type="button" value="User Details" onclick="submitForm(this.value);"/>
然后它重定向到showUsrDetail.jsp页面。当它执行此操作时,服务的名称将打印在控制台上。其代码为:

<% 
    String service = request.getParameter("services");
    System.out.println("Value Added Service selected is ="+service);
%>
如果我将第一个选择更改为CDMA,然后从第二个选择列表中选择任何服务,它仍会打印GSM下的服务


有人能帮我一下吗?

因为你在submitForm函数中什么都不做,只需提交表单,就可以直接通过它来实现。在选择CDMA之前选择语音聊天,因为一旦更改第一个选择框,它将调用方法选项Change,此时仅选择ASTRO。如何在选择CDMA之前选择语音聊天?只有在我在第一个选择列表中选择了CDMA之后,选项组合OFFER CDMA、WIN The DREAM和VOICE CHAT才会出现在第二个选择列表中。因此,在第二个选择项目上也应用change listener。第一次选择时的change listener将填充第二次选择时的change listener,第二次选择时的change listener将向服务发送请求。您能告诉我一点这是如何完成的吗?您能分享代码吗?单击按钮时您在做什么,或者您如何重定向到下一页。还有其他页面。。我无法直接传递用户详细信息。在代码中,我显示了用户详细信息。但是在方法submitform中有更多的页面,如activation.jsp、deactivation.jsp等。您刚才说的是在动态选择列表中添加一个偶数列表。你能帮我吗?让我更新我的帖子。问题是由于两个选择列表使用相同的名称。如果两个选择列表使用不同的名称,我将在此处传递什么来代替服务?String service=request.GetParameterServicesSimple在表单中创建一个隐藏的输入字段,并在更改gsmService或cdmaService选择字段时在中设置值。因为两个选择字段都有相同的名称,所以您总是得到第一个字段的选择值。或者对所有选择字段使用不同的名称,并在showUsrDetail.jsp中根据服务参数的值选择任何一个。或者,您也可以在代码中执行一件事情。更改时,只需删除上一个select字段的name属性。必须只有一个字段具有名称属性作为服务。
<form action="showUsrDetail.jsp" id="login" method="post">
    <!-- other fields -->
    <input type="submit" value="User Details"/>
</form>
<form id="login" action="showUsrDetail.jsp" method="post">
    <table>
        <tr>
            <td><select id="service" onChange="javascript:optionsChange();"
                name="service">
                    <option value="GSM">GSM</option>
                    <option value="CDMA">CDMA</option>
            </select></td>
            <td id="gsmService"><select name="gsmService">
                    <option value="COMBO OFFER">COMBO OFFER</option>
                    <option value="CRICKET">CRICKET</option>
                    <option value="ASTRO">ASTRO</option>
            </select></td>

            <td id="cdmaService" style="display: none"><select
                name="cdmaService">
                    <option value="COMBO OFFER CDMA">COMBO OFFER CDMA</option>
                    <option value="WIN THE DREAM">WIN THE DREAM</option>
                    <option value="VOICE CHAT">VOICE CHAT</option>
            </select></td>
            <td><input type="submit" value="User Details" /></td>
        </tr>
    </table>
</form>
<c:if test="${param.service == 'GSM'}">
    <c:out value="${param.gsmService}" />
</c:if>

<c:if test="${param.service == 'CDMA'}">
    <c:out value="${param.cdmaService}" />
</c:if>
<input type="hidden" name="serviceValue"/>
<c:out value="${param.serviceValue}" />