2011-09-11 3 views
2

javascriptからフォームを送信しようとしています。フォームは送信されますが、パラメータは渡されません。以下は私のコードです。JavaScriptの送信中にURLパラメータが渡されない

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Tic Tac Toe</title> 
<script type="text/javascript"> 
function selection(selected){ 
    theform = window.document.tictactoe; 
    theform.action="GameAction?selection="+selected.id; 
    theform.submit(); 
} 
</script> 
</head> 
<body> 
<form name="tictactoe" id="tictactoe" method="GET" action="GameAction"> 
<table border="1"> 
    <tr><td><img id="0,0" src="images/white.JPG" onclick="selection(this);"></img></td><td><img id="0,1" src="images/white.JPG" onclick="selection(this);"></img></td><td><img id="0,2" src="images/white.JPG" onclick="selection(this);"></img></td></tr> 
    <tr><td><img id="1,0" src="images/white.JPG" onclick="selection(this);"></img></td><td><img id="1,1" src="images/white.JPG" onclick="selection(this);"></img></td><td><img id="1,2" src="images/white.JPG" onclick="selection(this);"></img></td></tr> 
    <tr><td><img id="2,0" src="images/white.JPG" onclick="selection(this);"></img></td><td><img id="2,1" src="images/white.JPG" onclick="selection(this);"></img></td><td><img id="2,2" src="images/white.JPG" onclick="selection(this);"></img></td></tr> 
</table> 
</form> 
</body> 
</html> 

誰かがこの問題を解決することができたら嬉しいです。

答えて

3

フォームが 'get'を介してサブミットされると、ブラウザはフォームの値を受け取り、そこからクエリ文字列を取り出し、その場所にウィンドウを送ります。すでにクエリ文字列があった場合、新しい値を追加するだけではなく、それらを消去します。メソッドを '投稿'に変更すると、実際にURLに追加したいデータが追加されます。あなたの最終結果が本当に何であるかわからないので、私は少なくともこの情報があなたを助けてくれることを願っています。それはちょうど経験に基づいているので、他の人は技術的な洞察力を持っているかもしれません。

+0

スティーブンがお手伝いしてくれてありがとうございます。私が言いましたように、メソッドをgetからPOSTに変更しました。今、フォームは全く提出されていません。 –

+0

フォームが送信されていないか、データが取得されていませんか?あなたはクエリ文字列にデータを追加しているので、サーバはGET(つまり$ _GET ['selection'])から検索しなければならず、実際にデータがないために投稿されたデータはありません投稿されました。いくつかのステップを取り戻し、おそらくアプリケーションの仕組みを再考してもう少し説明したいと思うかもしれません。それ以外の場合は、私は暗闇の中でショットを撮っています:) – Stephen

+0

スティーブンありがとうございました。あなたが言っているのは、POSTが動作するようにメソッドを変更した直後のことです。サーブレットでは、doPost()の代わりにdoGetのパラメータをチェックしていましたが、 –

関連する問題