• ベストアンサー

先ほどの質問の続きなのですが・・・

先ほど、データの受け渡しについて質問しました。 さっそく試してみたのですが、うまく受け渡せないのです。 受け渡したいデータは2つあり、共にテキストボックスなのですが、「disabled」で入力不可にしてあります。 それが原因なのでしょうか??しかし、入力不可は仕様なので変えられないんです。 何か良い方法がありましたら、教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 387
  • ベストアンサー率66% (40/60)
回答No.4

横槍を入れるようで心苦しいですが、「disabled」 にすると送信されないと思います。 送信するデータを入力不可とするには、「readonly」にすればいいと思います(グレー表示に なりませんが、必要でしたら、スタイルシートでグレー表示にすればいいと思います)。

marmi1516
質問者

補足

回答ありがとうございます。 「readonly」というものがあるなんて、知りませんでした。勉強になりました。 ところで、スタイルシートとはなんですか?? よく耳にするんですが、何のことなのかよく知りません。 スタイルシートでグレー表示にする方法があるのでしたら、ぜひ教えていただきたいです。

その他の回答 (5)

  • 387
  • ベストアンサー率66% (40/60)
回答No.6

スタイルシートとは、HTMLの見た目を指定する仕掛けで、スタイルシートに対応 しているブラウザーであれば、どれでみても同じに見えるようにするものです。 指定する方法は幾つかありますが、一番分かり易いのが、タグに 「 style="・・・・" 」というのを記述する方法で、下の補足で示されている A.asp のソースでいうと <input name=nen maxlength=4 style="HEIGHT: 20px; TEXT-ALIGN: right; WIDTH: 25px" value ="<%=nendo%>" disabled > の、 style="HEIGHT: 20px; TEXT-ALIGN: right; WIDTH: 25px" がそうです。 で、色を変えるには例えば、 「 style="background-color: #CCCCCC;" 」 を指定するとそのタグの有効範囲の背景色がグレーになり、 「 style="color: #CCCCCC;" 」 を指定するとそのタグの有効範囲の文字色がグレーになります。 詳しくは、スタイルシートの辞典のような書籍をご参照された方がいいと思います。

marmi1516
質問者

お礼

ありがとうございました。 よくわかりました。 さっそく使用してみました。 本当に助かりました。ありがとうございます。

  • atsuota
  • ベストアンサー率33% (53/157)
回答No.5

mishidaさんの書かれたようにSession変数を使う方法もありましたね。サイトの中で参照される頻度の高いものはSession変数に入れてもよいと思います。 以下あくまでテキストボックスで渡す場合です。 > ちなみに、「hidden」でもう一つ同じ値を持たせたテキストボックスを用意し、 > そっちを受け渡すことはできました。 ということは、 <input type="hidden" name=nen2 maxlength=4 style="HEIGHT: 20px; TEXT-ALIGN: right; WIDTH: 25px" value ="<%=nendo%>"> と入れて Request.Form("nen2") といった感じで受け取ったわけですね。 とすると、試しにテキストボックスの「disable」をはずしてみてください。単に私が知らなかっただけで、「disable」属性が悪いのかも知れません。 あとはざっと見た限り、どこが悪いか分からないです。 私の方では現状テストできる環境がないので、何とも言えませんが。 がんばってやってみてください。

marmi1516
質問者

お礼

なんどもご親切にありがとうございました。 やはり「disable」が原因だったようです。 外してみたら、上手くいきました。 おかげで、なんとか値を受け渡す事ができました。 本当に助かりました。

  • mishida
  • ベストアンサー率34% (19/55)
回答No.3

 #2は、前の質問向けに書きました。すみません。atsuotaさんに異存はありません。  ただし、入力不可とするのであれば、#2でもいいのではないかと思います。

marmi1516
質問者

お礼

ありがとうございました。 Sessionオブジェクトは、使った事がないので使い方がよくわからないんです。 でも、そういう方法もあるということがわかって、勉強になりました。 本当にありがとうございました。

  • mishida
  • ベストアンサー率34% (19/55)
回答No.2

 こんにちわ。  以下のx1.asp、x2.aspのようにSessionオブジェクトを使うと、ページ間の値の受け渡しが簡単です。  Session("x")=" "のように、Sessionオブジェクトに値を格納します。  また、たとえば、Session("abc")とすると、Session("abc")も利用できるようになります。簡単に変数を追加できます。  どちらも、IISの実行権のあるディレクトリに格納してください。 //file : x1.asp <HTML> <BODY> <% Session("x") = "100" %> 100をセット<BR> <a href="x2.asp">受け渡し先</a> </BODY> </HTML> //file : x2.asp <HTML> <BODY> 値は<%= Session("x") %> </BODY> </HTML>

  • atsuota
  • ベストアンサー率33% (53/157)
回答No.1

先ほどの回答に2種類の方法がありましたが、marmi1516さんはどちらの方法を選ばれましたか。 「disabled」は多分関係ないと思います。 また、できれば該当フォームの部分と、受け渡される側の表示部分のソースの概略を書いてみてくれませんか。

marmi1516
質問者

補足

えっと、教えていただいた方法のうち、二つ目の方を使いました。 ****「A.asp」の画面****************************** <table> <tr> <form action="B.asp" method="post" id=aaa name=aaa> <td> <input type="submit" value="送信" name=btn> </td> <td> <input name=nen maxlength=4 style="HEIGHT: 20px; TEXT-ALIGN: right; WIDTH: 25px" value ="<%=nendo%>" disabled > </td> </form> ****「B.asp」の画面******************************* <% nendo = Request.form("nen") %> 平成<%=nendo%>年度 ************************************************** という感じで作成したのですが・・・・ ちなみに、「hidden」でもう一つ同じ値を持たせたテキストボックスを用意し、そっちを受け渡すことはできました。

関連するQ&A