- PR -

JavaScript

投稿者投稿内容
くり
常連さん
会議室デビュー日: 2006/10/30
投稿数: 28
お住まい・勤務地: tokyo
投稿日時: 2006-11-29 11:00
開発環境はeclipseを使ってます。
JSP内でJavaScriptのアンカーを押したときに、order byで、昇順、降順できるようにしたいのですが、

http://localhost:8080/***/front.jsp内


function ord(){@
document.forms[0].action ="front.jsp";
document.forms[0].submit();
}

</script>

<%
String ord = new String("ASC");A

<a href ="javascript:ord("ASC");">▲<a href ="javascript:ord("DESC");">▼B

rs = st.executeQuery("SELECT * FROM t_member ORDER BY NUM "+ord);C

A初期は昇順にしています。
この場合どのように変数に受け渡しをすればよろしいでしょうか?
よろしくお願いします。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2006-11-29 11:34
試してないから、ガセかもしれない。

  • formのaction属性で指定できるURLに、クエリパラメータを指定できたような気がする。
  • 渡せなきゃformのaction属性はあきらめ、クエリパラメータを付与し、リダイレクトする。


これらはおそらく、GETリクエストとして処理する必要があると思われます。

POSTで処理したい場合は、inputタグのtype=hiddenをDOMツリーに追加して、submitすればできるかもしれない。
これは、DOMツリーを操作する必要があります。
javascript DOMで検索すれば、何かサンプルを得ることができるでしょう。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-11-29 13:40
別にJavaScriptなんて使わなくてもGETのパラメータで
単純にフラグを送信すればいいのでは?
コード:
<a href ="/front.jsp?order=ASC">▲<a href ="/front.jsp?order=DESC">▼B 



どうしてもJavaScriptでsubmitしたいのであれば、
document.forms[0] のformにあらかじめhiddenのinputを用意しておいて
コード:
document.forms[0].hoge.value = odr;


といった感じにするのが楽かな。
くり
常連さん
会議室デビュー日: 2006/10/30
投稿数: 28
お住まい・勤務地: tokyo
投稿日時: 2006-11-29 17:25
かずくん、nagiseさん返信ありがとうございます。
ちなみにgetメソッドでは、できるだけ使わないようにしています。

ソース書き直しますと、
function ord(){
document.forms[0].hoge.value = odr;
−−− 略 −−−
}

<from method=POST>
<input type="hidden" name="hoge">
<a href ="javascript:ord(ASC)">▲
</form>

といった感じでしょうか。


あとordの初期値をnullの場合にはASCを代入したいのですが・・
String ord = new String("ASC");A
この記述を
String ord =request.getParameter("ord")
if(ord = null){
ord = new String("ASC");
}
この場合、Stringではif文はつかえないのですか?

お手数かけます。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2006-11-29 17:47
引用:

くりさんの書き込み (2006-11-29 17:25) より:
function ord(){
document.forms[0].hoge.value = odr;
−−− 略 −−−
}


引数とってないじゃん。

コード:
function ord(odr){
document.forms[0].hoge.value = odr;
}


こうでしょ?

引用:

String ord = new String("ASC");A
この記述を
String ord =request.getParameter("ord")
if(ord = null){
ord = new String("ASC");
}
この場合、Stringではif文はつかえないのですか?


「使えない」という理由は何でしょうか。期待した動作をしないのであれば、その
ように書いてみてはどうでしょうか。

後気になるのは、HIDDENフィールドの名前がhogeでリクエストパラメータの名前が
ordになっていることです。これが合っていないと動きませんよ。また、String
オブジェクトをわざわざ生成するのも無駄です。
くり
常連さん
会議室デビュー日: 2006/10/30
投稿数: 28
お住まい・勤務地: tokyo
投稿日時: 2006-11-29 18:11
UKさん、申し訳ないです。
確認してから投稿します。

コード:
--------------------------------------------------------------------------------

function ord(odr){
document.forms[0].ord.value = odr;
}


後の記述はif文を入れると、
cannot convert from String to boolean
と、エラーが出ます。

よろしくお願いします。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-11-29 19:22
引用:

後の記述はif文を入れると、
cannot convert from String to boolean
と、エラーが出ます。

よろしくお願いします。



中学生レベルの英語ぐらい読もうよ。(君が小学生だというなら申し訳ないが)
String型からboolean型に変換できないってエラーメッセージでしょう?
その上で君は何が原因と疑ってどう考えたの?

考えることをしないで質問されてもなぁ…。
ここは@IT会議室であって@IT教室じゃないんだよ。

あと、JavaScriptの話題はJava会議室ではなくて
リッチクライアント & 帳票 会議室側の管轄。
http://www.atmarkit.co.jp/bbs/phpBB/viewforum.php?forum=28&631
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2006-11-29 21:05
引用:

くりさんの書き込み (2006-11-29 17:25) より:

コード:
if(ord = null){





=がひとつしか無いようにみえるが、きっと気のせい、気のせい。

気のせいなので、それが原因で、
引用:

cannot convert from String to boolean


と出ていると思ってしまったよ。

スキルアップ/キャリアアップ(JOB@IT)