JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Servlet/JSP 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
作者 不跳轉傳js值給JSP
as0955344054





發文: 107
積分: 0
於 2013-12-05 21:48 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我想請問我以動態的方式創立數個BUTTON如下

1
2
3
4
5
6
7
8
<%for(int i=0;i<casestats[0].length;i++){
 
<input type="button" align="left" value="SNP<%=i%>" 
onclick="document.getElementById('singlesnp').innerHTML=document.getElementById('opentable<%=i%>').innerHTML;
 
singlesnp(<%=i%>);" />
 
<%}%>


此方法可以按下BUTTON後可呼叫FUNCTION傳出相應每個BUTTON的值但是是JS
酖我想利用傳出的值去JSP抓某個對應陣列的資料但不可跳頁面指示按下按鈕利用對應的值去JSP抓資料顯示請問有何方法

使用HIDDEN並利用表單直接SUBMIT會使網頁重新整里等於跳頁面

1. 請問有何方法傳送物件的VALUE給SERVER端但不跳頁面只是把值傳出去這樣我就可以直接用JSP取值判斷

2.可否利用我動態創物件的方法直接解決各個按鈕對應取值的問題而不必使用到傳送變數

3.主要希望可以使JSP取得按下對應按鈕資訊方法不限

系望可以請高手指點


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
roytsang





發文: 622
積分: 1
於 2013-12-05 23:16 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
用AJAX可以做到你要的東西

reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:roytsang]
as0955344054





發文: 107
積分: 0
於 2013-12-06 10:03 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
經過你的提醒我花了點時間去看AJAX

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<body>
<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  document.getElementById("myDiv").innerHTML="WTF";
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
  alert(<%=request.getParameter("textbox")%>);
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("POST","/GWASsoftware/testxmlhttp.jsp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("textbox=asd");
}
</script>
 
<h2>AJAX</h2>
<input type="button" onclick="loadXMLDoc();" value="POST資料" />
<input type="button" onclick="alert(<%=request.getParameter("textbox")%>);" value="SEVERLET抓資料" />
<input type="text" id="textbox" name="textbox" value="wow" />
<div id="myDiv"></div>
 
</body>


我不太清楚是我誤解他POST意思還是??
想請問一下我POST上去之後去抓TEXTBOX取得還是空值
請問是否哪邊有錯??


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
noneman





發文: 159
積分: 0
於 2013-12-06 10:23 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
在testxmlhttp.jsp中用out.println顯示你要回傳的值,
然後設定textbox裡的值為xmlhttp.responseText


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
roytsang





發文: 622
積分: 1
於 2013-12-06 10:59 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
你可以試下將這句:
1
alert(<%=request.getParameter("textbox")%>);

改成:
1
alert(xmlhttp.responseText);


看看情況如何


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:roytsang]
as0955344054





發文: 107
積分: 0
於 2013-12-06 14:49 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
roytsang wrote:
你可以試下將這句:
1
alert(<%=request.getParameter("textbox")%>);

改成:
1
alert(xmlhttp.responseText);


看看情況如何


他把整個JSP裡的程式碼全部秀出來了


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
as0955344054





發文: 107
積分: 0
於 2013-12-06 14:52 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
在testxmlhttp.jsp中用out.println顯示你要回傳的值,
然後設定textbox裡的值為xmlhttp.responseText

有點看不懂你的意思 可以幫我解釋一下嗎


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
roytsang





發文: 622
積分: 1
於 2013-12-06 15:48 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
看來你似乎對什麼是server side program和client program 的concept 不清楚,
現在你可以嘗試用以下example去理解,看一看你明不明白,
首先你要create 兩個file,一個叫index.htm,另外一個叫testxmlhttp.jsp
index.htm 的內容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<html>
<meta charset="big5"> 
<body>
<script type="text/javascript">
function loadXMLDoc()
{
  var xmlhttp;
  if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 
  xmlhttp.open("POST","testxmlhttp.jsp",true);
  xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  xmlhttp.send("textbox="+document.getElementById("textbox").value);
 
  xmlhttp.onreadystatechange=function()
  {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
          document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
        }
    
  }
}
</script>
 
<h2>AJAX</h2>
<input type="button" onclick="loadXMLDoc();" value="POST資料" />
 
<input type="text" id="textbox" name="textbox" value="wow" />
<div id="myDiv"></div>
 
</body>

testxmlhttp.jsp的內容:
1
<%=request.getParameter("textbox")%>

資料流程如下:
當"POST資料" button被按下時,它會將textbox的內容用ajax方法send 去server side 的testxmlhttp.jsp.
當testxmlhttp.jsp接到資料之後就將資料原原本本地response 給browser 端(即是client side),
之後browser call client side 的xmlhttp.onreadystatechange 來處理server 的response,
在onreadystatechange裡面要檢查response 是否正常即是以下的code:

1
if (xmlhttp.readyState==4 && xmlhttp.status==200)


如果正常就將server 的response寫進"myDiv" 這個div裡


roytsang edited on 2013-12-06 16:10
reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:roytsang]
as0955344054





發文: 107
積分: 0
於 2013-12-06 17:18 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我當初的理解跟你想表達的好似是相同
依照你這樣的說法,跟我的作法有何分別??
因為我需要做到的是把部分的物件 或是整個頁面POST上去SERVER端
之後由自己取回來 而不跳轉

如果利用你說的那例子 用整個頁面SUBMIT出去直接跳轉頁面不就可以了嗎??

我這個程式是想達成把自己的TEXTBOX,POST上SEVER端馬上取回當中的值做到類似資料更新的效果。

不知道是否我誤解你要對我表達的意思!?


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
noneman





發文: 159
積分: 0
於 2013-12-06 17:40 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
現在,把testxmlhttp.jsp裡的程式全部清空,裡面直接打123,
然後
1
document.getElementById("textbox").value = xmlhttp.responseText;


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
roytsang





發文: 622
積分: 1
於 2013-12-06 17:55 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
as0955344054 wrote:
我當初的理解跟你想表達的好似是相同
依照你這樣的說法,跟我的作法有何分別??
因為我需要做到的是把部分的物件 或是整個頁面POST上去SERVER端
之後由自己取回來 而不跳轉

如果利用你說的那例子 用整個頁面SUBMIT出去直接跳轉頁面不就可以了嗎??

我這個程式是想達成把自己的TEXTBOX,POST上SEVER端馬上取回當中的值做到類似資料更新的效果。

不知道是否我誤解你要對我表達的意思!?

因為用ajax 方法send 資料到server side 的jsp 所以不會跳轉頁,以下的example 應該做到你想要的効果。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<html>
<meta charset="big5"> 
<body>
<script type="text/javascript">
function loadXMLDoc()
{
  var xmlhttp;
  if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 
  xmlhttp.open("POST","testxmlhttp.jsp",true);
  xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  xmlhttp.send("textbox="+document.getElementById("textbox").value); //將"textbox" 的內容send 到server上的testxmlhttp.jsp
 
  xmlhttp.onreadystatechange=function() //這是回應server 端的response 的function
  {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)//檢查server 端的response  是否正常
        {
          document.getElementById("result").value=xmlhttp.responseText; //將server 端的response寫到 "result" textbox 中
        }
    
  }
}
</script>
 
<h2>AJAX</h2>
<input type="button" onclick="loadXMLDoc();" value="POST資料" />
 
<input type="text" id="textbox" name="textbox" value="wow" />
<input type="text" id="result" name="textbox" value="WA" />
<div id="myDiv"></div>
 
</body>
</html>


roytsang edited on 2013-12-06 18:03
reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:roytsang]
as0955344054





發文: 107
積分: 0
於 2013-12-07 05:24 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我使用你給的方式下去寫
但取出來的值如下

document.getElementById("result").value=xmlhttp.responseText;
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

http://www.javaworld.com.tw/jute/gallery/Y/X/YXMwOTU1MzQ0MDU0/1386364982425.png

不知是否哪邊有問題
上面的取值出來為整個網頁的程式碼完全的文字取出

程式碼如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<%@ page contentType="text/html; charset=utf-8" import = "java.sql.*"%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 " />
<title>"測試"</title>
</head>
 
<body>
<script type="text/javascript">
function loadXMLDoc()
{
alert("1");
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
{
  document.getElementById("myDiv").innerHTML="WTF";
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("result").value=xmlhttp.responseText;
   document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("POST","/GWASsoftware/testxmlhttp.jsp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("textbox="+document.getElementById("textbox").value);
}
</script>
 
<h2>AJAX</h2>
<input type="button" onclick="loadXMLDoc();" value="POST資料" /><br />
<input type="button" onclick="alert(<%=request.getParameter("textbox")%>);" value="SEVERLET抓資料" />
<input type="text" id="textbox" name="textbox" value="wow" />
<input type="text" id="result" name="textbox" value="WA" />
<div id="myDiv"></div>
</body>
</html>


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
roytsang





發文: 622
積分: 1
於 2013-12-07 11:35 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
as0955344054 wrote:
我使用你給的方式下去寫
但取出來的值如下

document.getElementById("result").value=xmlhttp.responseText;
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

http://www.javaworld.com.tw/jute/gallery/Y/X/YXMwOTU1MzQ0MDU0/1386364982425.png

不知是否哪邊有問題
上面的取值出來為整個網頁的程式碼完全的文字取出

程式碼如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<%@ page contentType="text/html; charset=utf-8" import = "java.sql.*"%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 " />
<title>"測試"</title>
</head>
 
<body>
<script type="text/javascript">
function loadXMLDoc()
{
alert("1");
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
{
  document.getElementById("myDiv").innerHTML="WTF";
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("result").value=xmlhttp.responseText;
   document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("POST","/GWASsoftware/testxmlhttp.jsp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("textbox="+document.getElementById("textbox").value);
}
</script>
 
<h2>AJAX</h2>
<input type="button" onclick="loadXMLDoc();" value="POST資料" /><br />
<input type="button" onclick="alert(<%=request.getParameter("textbox")%>);" value="SEVERLET抓資料" />
<input type="text" id="textbox" name="textbox" value="wow" />
<input type="text" id="result" name="textbox" value="WA" />
<div id="myDiv"></div>
</body>
</html>



其實第40行你想要什麼的効果呢?


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:roytsang]
as0955344054





發文: 107
積分: 0
於 2013-12-07 14:41 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
其實第40行 只是我測試用這方法能不能抓到東西
但抓到的是NULL~~不過我測試時並沒有去測試那部分
只是創一個BUTTON放著應該是不會影響到

抱歉沒把程式整理完全還有留下對此問題物意義的東西
不過砍掉問題還是如我所說


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:noneman]
as0955344054





發文: 107
積分: 0
於 2013-12-08 10:10 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
看不太懂你的意思
全清空打123不就整個頁面只剩下123??
物件都沒了
document.getElementById("textbox").value = xmlhttp.responseText;
抓的到東西嗎= ="


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
roytsang





發文: 622
積分: 1
於 2013-12-09 11:19 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
as0955344054 wrote:
其實第40行 只是我測試用這方法能不能抓到東西
但抓到的是NULL~~不過我測試時並沒有去測試那部分
只是創一個BUTTON放著應該是不會影響到

抱歉沒把程式整理完全還有留下對此問題物意義的東西
不過砍掉問題還是如我所說


以下這一句是在server side 讀取由client side傳回來的資料:
request.getParameter("textbox")

由於你的ajax 裡不是call 同一個jsp, 所以傳回值是null
資料流程如下:
用 ajax post data
index.html------------------------------->testxmlhttp.jsp

在testxmlhttp.jsp內的以下statement 就收由client side傳回來的資料:
request.getParameter("textbox")

之後在testxmlhttp.jsp用以句子來response 所收到的資料到client side:
<%=request.getParameter("textbox")%>
資料流程如下:
用 ajax post data
index.html------------------------------->testxmlhttp.jsp

response所收到的資料
index.html<-------------------------------testxmlhttp.jsp

由於只是response所以request.getParameter("textbox")是收不到資料。


roytsang edited on 2013-12-09 11:31
reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
chuanchu





發文: 120
積分: 0
於 2013-12-09 12:55 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
W3schools
The responseText property returns the response as a string

code28是把回應設為value的值
code29是把回應放在標籤本體

你第一次是在URL欄位輸入網址(無query string)直GET請求testxmlhttp.jsp
之後透過回應的頁面使用非同步POST請求testxmlhttp.jsp


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:roytsang]
as0955344054





發文: 107
積分: 0
於 2013-12-10 10:37 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我知道request.getParameter("textbox")
是等於告訴SERVER去抓取客戶端POST進去的變數

但你說不適CALL同一個JSP??
我是要以自己丟出去SEVER馬上取回來執行應該都是同一個JSP阿??
我PO程式的JSP本身就是testxmlhttp.jsp

你下面的解釋我大概有點看懂,但感覺有些重點沒有講很清楚還是有點混淆

但是即便我懂你想表達的我還是不知如何做出我所需要的功能
我不知道是否你有會錯意,但我主要的宗旨很簡單就是實作出testxmlhttp.jsp 中的其中一個JAVASCRIPT參數或是多個參數傳上SEVER端,(submit上去)馬上可以由testxmlhttp.jsp (自己本身)從SEVER端抓回資料等於直接更新SEVER內資料並且不跳轉

簡單說

1
2
3
var javascriptvariable;
 
<%String jspvariable=javascriptvariable%>


JSP變數並沒有辦法直接存取JAVASCRIPT因為他在客戶端我所要的就是將 javascriptvariable丟上SEVER讓JSP可以取道相應的東西可以直接拿來判斷運用,概念就只有這樣

我使用你給的程式碼執行並不能得到所需的東西 且可能是錯誤並不是你原本預算要給我的結果
以給予輸出結果卻沒有得到回應
這樣給的那段程式碼是否沒意義?
因為並沒有討論到我們真正要討論的部分
例如你提出40行,那本來就不是你給我CODE的內容而是我測試用,但你給我的CODE有沒有達成你想要我得到的輸出結果,很可能我的輸出根本不是你當初預想,但總歸而言你的CODE由我這跑出來並不是我所需要的東西,所以討論是否你會錯意,或是你CODE有問題還是我抓你CODE抓到我這跟你原本結果不同


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
noneman





發文: 159
積分: 0
於 2013-12-10 11:22 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
......建議您還是ajax看熟再寫程式會好點,
現在的情況:
你執行ajax與取得parameter用的是同一個頁面

但所有大大們的意思是:
執行ajax及取得parameter是必須分兩個頁面的(同時這才是正統ajax的寫法)

所以,不是大大們會錯意,而是你會錯意了

現在你所該做的是另外分一個頁面出來,將參數傳入另一個頁面,試試能不能取回你要的結果,然後將大大們回你的文從頭再看個幾遍,直到確定懂了為止。

最後,記得跟那些幫你的大大們說謝謝。


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
chuanchu





發文: 120
積分: 0
於 2013-12-10 13:40 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
不管別人有無給予實值的幫助都是出於善意,注意用詞
不然,會的人也不會去理自大的新手,不是指你

沒人知道為何堅持從伺服器取得資料後,更新原請求頁面部份內容,有何真正用意?
用一個實際範例來表達,比用一串文字說明來的有意義

理性的討論,別像那只會耍嘴皮子又半調子又怕別人不知的新手看齊。


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:noneman]
as0955344054





發文: 107
積分: 0
於 2013-12-10 15:33 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
SORRY或許是我表達不好

我清楚他們給我的是要兩個頁面一個丟一個取

但我所需求就是要把JS變數丟出去給SERVER馬上抓回來判斷
但在不跳頁的情況下

我"重要"要達成的是不轉跳頁面下把JS的變數創的物件往SERVER丟

一般SUBMIT會跳轉頁面 就是要避免這部分

我所要詢問的是達成這功能的方法,並不是AJAX的使用方法
如果AJAX無法達成我要的功能或是不建議非常麻煩
那我就不會執著於使用AJAX來解決

因為那位大大與我討論的是兩個分頁但這並不符合我需要的功能,簡單AJAX我已經有練習過相關東西 我會一直跟那位大大討論下去並且強調我是要同頁面是以為他的做法可以達成我要的功能,只是我在某方面疏忽,程式概念等方面問題導致他的方法能達成但我卻無法時做出來。

感謝大大的提醒


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:chuanchu]
as0955344054





發文: 107
積分: 0
於 2013-12-10 15:43 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
謝謝提醒 或許我在打字時沒有多想用了比較不好聽的字眼

因為是我功能需求所以才這樣提問,在有些時候功能意義並不是那麼重要,也該說功能如何並不是我所可以決定的

上司要求下來要這樣的方式(也可能是我只想到這樣的解決方式),我們的工作就是要達成他們要的東西。

我的需求是達成此功能並不局限於AJAX我怕前面回我的大大會錯意才一直強調我要什麼,如果真的確認無法實現,或是花很多沒意義的麻煩才能達成此功能,礙於現狀再去跟需要這些東西的人argue
或是想辦法用其他東西代替

尤其是我現在還在學習階段,能接觸到越多當然越好,我不會希望自己因為上頭交待什麼我現在不好達成就幾句話回他無法達成而沒有去找尋解決辦法。

我在詢問AJAX前也有花時間先去做簡單的案例有成功但是像大大說的兩個網頁,只會最簡單的使用方式,但不轉跳頁面卻不知如何執行


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
as0955344054





發文: 107
積分: 0
於 2013-12-10 16:07 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list


按鈕方面的CODE
1
2
3
4
5
6
7
8
<%for(int i=0;i<casestats.length;i++){
String nowsnp=Integer.toString(i);%>
<tr>
<td align="center">
<input type="button" align="left" value="SNP<%=i%>" onclick="document.getElementById('singlesnp').innerHTML=document.getElementById('opentable<%=i%>').innerHTML;singlesnp(<%=i%>);" />
</td>
</tr>
<%}%>


我抓取一個二維陣列DATA(資料存於jsp)並且判斷它的長度動態創出多個BUTTON
上放每一個SNP都有一個對應ID為SNP(第幾個snp)

按下去會判斷我所點選的按鈕取抓取相應的table 此方面以實作成功

但還需要點選後抓取相應的那條data並產生圖表,但是必須判斷出要取得哪個資料,但物件並未submit,jsp無法取得變數所以我需要將js變數或是創一個hidden按下按鈕改變將其value並上傳至server,之後再判斷取出需要的資料但不跳轉頁面。


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
roytsang





發文: 622
積分: 1
於 2013-12-10 16:11 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
盡管不是recommended,又不是我要做maintenance,讓你"體驗" 一下吧
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<%
  if (request.getParameter("textbox")==null)
  {%>
    <html>
    <meta charset="big5"> 
    <body>
    <script type="text/javascript">
    function loadXMLDoc()
    {
      var xmlhttp;
      if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
      }
      else
      {// code for IE6, IE5
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
     
      xmlhttp.open("POST","testxmlhttp.jsp",true);
      xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
      xmlhttp.send("textbox="+document.getElementById("textbox").value); //將"textbox" 的內容send 到server上的testxmlhttp.jsp
     
      xmlhttp.onreadystatechange=function() //這是回應server 端的response 的function
      {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)//檢查server 端的response  是否正常
            {
              document.getElementById("result").value=xmlhttp.responseText; //將server 端的response寫到 "result" textbox 中
            }
        
      }
    }
    </script>
     
    <h2>AJAX</h2>
    <input type="button" onclick="loadXMLDoc();" value="POST資料" />
     
    <input type="text" id="textbox" name="textbox" value="wow" />
    <input type="text" id="result" name="textbox" value="WA" />
    <div id="myDiv"></div>
     
    </body>
    </html>
<%}
  else
  {
    out.println(request.getParameter("textbox"));
  }%>    


reply to postreply to post
作者 Re:不跳轉傳js值給JSP [Re:as0955344054]
chuanchu





發文: 120
積分: 0
於 2013-12-10 20:20 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
JSP是運行在伺服端,而JavaScript是運行在客戶端(瀏覽器)
JSP動態產生的html頁面放在HTTP回應主體中由HTTP伺服器回應客戶端
這就是你看到的頁面

使用請求參數協助JSP產生你要的頁面,因為它知道如何取得資料(可能在後端),再利用這些資料做一些你想做的事。然後由瀏覽器呈現給你。

可利用JavaScript發出非同步請求取得回應,更新html網頁的部份內容。

所以不覺得該用html網頁中的表格資料,經你篩選後再傳給JSP去處理。
如果只是要從回應的網頁中篩選表格資料呈現,直接用JavaScript處理圖表就好,不用再浪費網路資源。


reply to postreply to post
go to first page go to previous page  1   2  go to next page go to last page
» JWorld@TW »  Servlet/JSP 討論區

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8