如何在一个下拉菜单中传递多个值?

时间:2013-10-15 16:36:46

标签: java html jsp

我试图同时传递artistName和artistId的值,以允许将两个字段写入表中。我需要两个值来允许artistName上的超链接来查询单个艺术家。 artistId字段是艺术家表的主键,以及专辑表上的外键。

有没有办法制作一个双值名称,允许我轻松地将2个值相互分开,同时将名称和id写入表中,或者可能是在请求后解析2个字段的方法。 getParameter变得更有用吗?

以下是我对这个领域的看法......

JSP

<tr><td><b>Artist*</b></td>

<td><select name="artistName">
<c:forEach items="${Artists}" var="Artist">
<!--    <option> <c:out value="${Artist.artistName}?artistId=${Artist.artistId}&   artistName=${Artist.artistName}"/></option>${Artist.artistId} -->
<option> <c:out value="${Artist.artistName} ${Artist.artistId}"/></option>
</c:forEach>
</select></td></tr>

2 个答案:

答案 0 :(得分:0)

如果您要同时发送艺术家的 NAME ID , 你可以做的是,当你在foreach循环中输入它们时,基本上你会用':'分隔它们。

因此,当您提交实际表单时,select的值将为artistName:artistID

从那里你可以拆分':'上的字符串,将它们作为单独的部分插入到你的表中。

答案 1 :(得分:0)

从您的评论中,我认为这样可以解决问题:

<tr>
    <td><b>Artist*</b></td>
    <td>
        <select name="artistName">
        <c:forEach items="${Artists}" var="Artist">
            <option <c:out value="${Artist.artistId}"/>>${Artist.artistName}</option>
        </c:forEach>
        </select>
    </td>
</tr>

请注意我自己不是Java / JSP所以我不确定语法,但id是在选项标签中输入value属性INSIDE。我认为这是你的问题,但如果没有HTML输出源的副本,很难确定。 请注意,您的问题标题会误导您的目标。正如我在评论中所说,你实际上并不需要(至少不是从我看到的地方)传递多个值,实际上只需要艺术家ID。