2013-05-03 61 views
1

我有一個jsp在我所選擇的標籤,我想獲得 和選擇在JSP中我的servlet發送值Servlet的

<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屬性這樣的,但它不是工作的顯示空

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); 
} 

在此先感謝,並高度讚賞任何代碼。

+0

它會去相同的servlet嗎?發佈完整的html表格 – 2013-05-03 10:50:20

+0

'foodName()'方法做了什麼?你在'form'裏面選擇了嗎? – Kshitij 2013-05-03 10:50:32

+0

#kshitj食品名稱轉到javascript和js,而不是由ajax調用servlet。 @Baadshah是的,它轉到onChange方法上的相同servlet – 2013-05-03 10:52:20

回答

1

只要改變你的AJAX open()請求作爲

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

沒有什麼是對的onChange()做發生的變化 – 2013-05-03 12:01:00

+0

其http後://本地主機:8080 /分銷/ InformationServlet 它顯示錯誤代碼你給.. 錯誤是不能讀屬性'undefined'undefined – 2013-05-03 12:09:52

+0

沒有什麼是錯的,它顯示在js錯誤的URL ..我在前面的評論中提到的錯誤 – 2013-05-03 12:14:11

0

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

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

我知道有人會發布這個。對於'select','multiple'不適用。 – 2013-05-03 11:02:01

0

檢查這個帖子:

How to use onClick() or onSelect() on option tag in a JSP page?

你好像是用select標籤沒有任何動作,如平變化

+0

'onchange = foodname();'我想你錯過了! – 2013-05-03 11:03:19

+0

@Ravi他說要在選項標籤上使用onClick和onSelect .. – 2013-05-03 11:09:02

+0

@AnishSharma在'select'上使用事件處理程序是相當普遍的,而不是這裏的問題。你不需要改變它。 – 2013-05-03 11:13:46

0

您可以從列表框中使用

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

在你的JS方法中,併發送這個值與servlet的鏈接。

+0

我該如何發送servlet鏈接的值 – 2013-05-03 11:06:07

+0

InformationServlet?dropdown = selectedValue並使用request.getParameter(「dropdown」);在你的servlet中,你已經完成了。 – 2013-05-03 11:10:24

+0

no not not .. – 2013-05-03 11:45:21

0

得到選擇變量值

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; 
     } 
     } 
    }; 
} 
+0

它不工作就沒有現在調用servlet的.. – 2013-05-03 11:47:59

+0

你可以分享你的web.xml文件 – NPKR 2013-05-03 11:50:00