2013-05-11 60 views
0

我有以下情形從JavaScript傳遞一個變量值到JSP

<select name="dropdown_Source" onchange="call()"> 
    <% for (int i=0 ; i < a1.length; i++) { if (a1[i]==n ull) break; %> 
     <option value="<%=a1[i]%>"> 
      <%=a1[i]%> 
     </option> 
    <% } %> 
</select> 

<script> 
    function call() { 
     var source = document.forms[0].dropdown_source.value; 
     // Now this 'source' value i have to pass to jsp function 
     <% 
      Admin a = new Admin(); //this is class defined 
      a.getResult(source); //but source is not resolved here 
     %> 
    } 
</script> 

這怎麼source值我應該通過在JSP的功能? a.getResult() - 函數將返回我的下拉列表元素列表和該列表 我必須填充另一個<option>標記。

+0

醜陋的代碼..我不知道jsp,但我相信這將無法正常工作,因爲jsp服務器端JavaScript客戶端..如果你可以得到與jsp的下拉值做它..與asp.net我可以得到價值我從javascript中設置其值的下拉列表。 – Mehmet 2013-05-11 12:33:31

回答

3

你不能那樣做。在JSP頁面已編譯併發送到瀏覽器後,JavaScript在客戶端執行,如response

2

你不能混合JavaScript和java代碼。當你做

<% 
      Admin a = new Admin(); //this is class defined 
      a.getResult(source); //but source is not resolved here 
     %> 

這意味着代碼片段將在服務器端進行處理,因爲這是普通的Java code.Now變量「源」是不是Java可變的,但一個javascript變量,它會進入畫面時,你的HTML頁面在瀏覽器上加載。所以它是一個編譯錯誤。

1

這裏要做的最好的事情是,一旦JavaScript執行,獲取該源值並對您的服務器進行AJAX調用,對其進行處理並將值發送回客戶端,然後填充下拉列表。