簡體   English   中英

將值從jsp發送到Servlet

[英]Send values from jsp to Servlet

我有一個jsp,其中有select標記,我想從Servlet的jsp中的select中獲取和所選擇的值

<select id="listoffood" name="dropdown" onchange="foodname();">
<option value="bg">Burger</option>
<option value="pas">pasta</option>
<option value="pi">pizza</option>
</select>
<div id='content'></div>

這是JavaScript代碼

function foodname()
{

  var xmlHttpReq = false;
    var self = this;
    document.getElementById('content').innerHtml='';
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }

    self.xmlHttpReq.open('GET', "InformationServlet", true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.send(null);

    self.xmlHttpReq.onreadystatechange= function ()
    {
        //alert(document.getElementById('content'));
        if (self.xmlHttpReq.readyState==4)
        {
        if (self.xmlHttpReq.status == 200)
        {

        document.getElementById('content').innerHTML=self.xmlHttpReq.responseText;
        }
        }
    };

}

我所做的是使用像這樣的get Attribute,但它不能正常顯示null

protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException 

    {
    // TODO Auto-generated method stub

    String coun = request.getParameter("dropdown");
    PrintWriter out=response.getWriter();
    System.out.println("here : "+coun);
}

在此先感謝您,任何代碼都將受到高度贊賞。

只需將您的AJAX open()請求更改為

var select = document.getElementById("listoffood");
self.xmlHttpReq.open('GET', "InformationServlet?dropdown=" + select.options[select.selectedIndex].value, true);

使用方法getParameterValues(String)
這是因為<select>標簽可以具有多個選擇的值(例如, select multiple

String[] coun = request.getParameterValues("dropdown");

檢查這篇文章:

如何在JSP頁面的選項標簽上使用onClick()或onSelect()?

您似乎正在使用select標簽,但未執行任何操作(例如onchange)

您可以使用以下方法從列表框中獲取選定的項目文本:

var e = document.getElementById("dropdown");
var selectedValue = e.options[selectBox.selectedIndex].value

在您的JS方法中,並通過servlet的鏈接發送此值。

從選擇標簽獲取值

var e = document.getElementById("dropdown");
var selectedValue = e.options[selectBox.selectedIndex].value;

和編輯js函數

self.xmlHttpReq.open('GET', "InformationServlet?dropdown="selectedValue , true);

最后你應該看起來像

function foodname()
{

    var e = document.getElementById("dropdown");
    var selectedValue = e.options[selectBox.selectedIndex].value;

  var xmlHttpReq = false;
    var self = this;
    document.getElementById('content').innerHtml='';
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }

    self.xmlHttpReq.open('GET', "InformationServlet?dropdown="selectedValue , true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.send(null);

    self.xmlHttpReq.onreadystatechange= function ()
    {
        //alert(document.getElementById('content'));
        if (self.xmlHttpReq.readyState==4)
        {
        if (self.xmlHttpReq.status == 200)
        {

        document.getElementById('content').innerHTML=self.xmlHttpReq.responseText;
        }
        }
    };
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM