スレッド表示 | フラット表示〕 全トピック 920 件中 699 番目 次≫ ≪前

input文による受け渡し

created: 2004-01-12 20:58 | modified: 2004-01-14 21:45 | reply: 9

[1218] input文による受け渡し

user: mido | created: 2004-01-12 20:58
こんにちは。
いつもお世話になります。

初期ページで
input文からデータを読み取って
次ページでその内容により
制御するプログラムを作成しています。

今までは
<input type="text" name="Q1" value="あああ"onclick="SetGamen(1)">
等と記述して
次ページでQ1の内容が”あああ”
であると判断していたのですが
今回ボタンを.gif画像を利用しなければならなくなり
<input type="image" name="Q1" src="abcd.gif" alt="あああ" value="あああ"onclick="SetGamen(1)">
等と試してみているのですが
次ページでのQ1の内容を
今までのように旨く読み取る事が出来ません

PHPINFO()の内容は
_POST["Q1_x"] 151
_POST["Q1_y"] 24
となり
ボタン画像のX軸、Y軸が示されているようです。
Q1の内容が="あああ"であるとわかるような
仕組みは出来ないでしょうか?

ご教授よろしくお願い致します。
reply: 1219 返信 編集 削除

[1219] input type="hidden"

user: hamaji | created: 2004-01-13 01:04
こんばんは。

>_POST["Q1_x"] 151
>_POST["Q1_y"] 24
>となりボタン画像のX軸、Y軸が示されているようです。
は正しい動作のようです。
というよりも、そもそもinput type="image"の場合、value属性自体が無効のようです。
あくまでもsubmitの代替のようですね。
http://tohoho.wakusei.ne.jp/html/input.htm
http://www.parkcity.ne.jp/~chaichan/src/htmform.htm
http://www.microsoft.com/japan/developer/library/jpisdk/dhtml/references/html/INPUT.htm#html_input

こういう場合はhiddenを使ってはどうでしょう。
<form>
<input type="hidden" name="Q1" value="あああああ">
<input type="image" src="abcd.gif" alt="ああああ">
</form>
私はinput type="image"を使うときはhiddenを使用します。

#追記
#Onclick="○○"は大丈夫なようです。
<script language="javascript">
function test() {
var a = document.form1.Q1.value;
alert(a);
}
</script>
<form name="form1" method="POST" action="">
<input type="hidden" name="Q1" value="あああああ">
<input type="image" src="abcd.gif" alt="あああああ" Onclick="test()">
<form>
Parent: 1218  reply: 1220 返信 編集 削除

[1220] ありがとうございました

user: mido | created: 2004-01-13 08:09
助かりました!
input文を同じ項目に対して
2種類使用できてしまうのですね。

簡単な事でご迷惑おかけしますが
今後もよろしくお願い致します。

#追記もありがとうございました。
Parent: 1219  reply: 1221 返信 編集 削除

[1221] すみません

user: mido | created: 2004-01-13 08:41
上記のように次ページには
旨く対応出来たのですが
下記のようにテーブルを使用している為
どちらにも同じ内容"いいい"が
Q1に格納されてしまいます。

<table>
 <tr align="center">  
 <td><input type="hidden" name="Q1" value="あああ">
   <input type="image"src="abcd.gif" alt="あああ" onclick="SetGamen(1)"></td>
 <td><input type="hidden" name="Q1" value="いいい">
   <input type="image"src="abcd.gif" alt="いいい" onclick="SetGamen(1)"></td>
</tr>

Q1の内容を次ページ渡すためには
ほかにパラメータを渡すコマンドを使用して
別のやり方を用いた方が良いのでしょうか?

SESSION等、前に挑戦したこともあるのですが
あまりよくわからずギブアップした覚えもあります。

phpではなくhtmlの質問になっているような気もしてしまいますが教えて頂けますか?
Parent: 1220  reply: 1222 1223 返信 編集 削除

[1222] <form></form>

user: hamaji | created: 2004-01-13 12:31
同じnameで違うvalueの値を取得したいときは、配列を使うやり方と、
<form></form>で区切るやり方があります。
関連した一連のデータがほしいなら配列を使用したほうがよいですが、
どれかひとつでいいなら、<form></form>を使えばよいと思います。
<table>
 <tr align="center">
<form method="post" action="○○">
 <td><input type="hidden" name="Q1" value="あああ">
   <input type="image"src="abcd.gif" alt="あああ" onclick="SetGamen(1)"></td>
</form>
<form method="post" action="○○">
 <td><input type="hidden" name="Q1" value="いいい">
   <input type="image"src="abcd.gif" alt="いいい" onclick="SetGamen(1)"></td>
</form>
</tr>
</table>
これで「あああ」のアイコンがクリックされたら、Q1の値は『あああ』。
「いいい」のアイコンがクリックされたら、Q1の値は『いいい』となります。

買い物かごなどでこのやり方は使ったりしますね。

#注
<form>タグは入れ子にはできません。(<form>タグの中に<form>タグは入れることはできません。)
Parent: 1221  reply: 1224 返信 編集 削除

[1224] ようやくです!

user: mido | created: 2004-01-14 13:02
遅くなりすみません。四苦八苦していました・・・・・

<form method="post" action="○○">
の部分を

<form name=form1 method="post" action="">
にしていたのですが、この方法で実行すると
SetGamenに飛ぶのか飛ばないのか
次ページに移ってくれませんでした。

そこでactionにダイレクトにxxx.phpを入れて
<form method="post" action="xxx.php">
としたところ旨くいきました。

OnClickが利いてるのかどうか疑問は残るところですが
とりあえず、画面の動き、データーの受け渡しは
正常に行われるようになりました。
どうもありがとうございました。

SetGamenでは下記のように設定しています。
何か変な点があるようでしたらご教授下さい。よろしくお願い致します。

<Script language = "javascript">
<!--
function SetGamen(Flg){
if (Flg == 1) {
document.form1.action = "xxx.php";
document.form1.submit();
}
}
-->
</Script>
Parent: 1222  返信 編集 削除

[1223] 引き数渡し

user: | created: 2004-01-14 08:34
Javascriptを使う前提なら、Javascriptのfunctionに引き数で渡してしまえばどうでしょう。

<script language="javascript">
function test(answer) {
document.form1.Q1.value = answer;
alert(answer);//確認。
document.form1.submit();
}
</script>
<form name="form1" method="POST" action="">
<input type="hidden" name="Q1" value="">
<input type="image" src="abcd.gif" alt="あああ" Onclick="test('あああ')">
<input type="image" src="abcd.gif" alt="いいい" Onclick="test('いいい')">
<input type="image" src="abcd.gif" alt="ううう" Onclick="test('ううう')">
<form>
Parent: 1221  reply: 1225 返信 編集 削除

[1225] answerの使い方

user: mido | created: 2004-01-14 13:20
ありがとうございます。

教えて頂いた方法で実行したところ
alert(answer)に正確なデータが入り旨く回っているようです。
ただ次ページに進んだ時にこのanswerを
どのように使用すれば良いのかわからずにいます。
基本的なことで申し訳ありませんがご教授願えますか?
javascriptは下記のようにコーディングしています。

<script language=javascript>
<!--
function Test(answer) {
document.f1.Q1.value = answer;
alert(answer);
document.f1.action "xxx.php";
document.f1.submit();
}
//-->
</script>
Parent: 1223  reply: 1226 返信 編集 削除

[1226] RE:answerの使い方

user: | created: 2004-01-14 14:58
えっと、まず、

<form method="post" action="xxx.php">

としてaction先を指定しているのなら、javascriptで

document.form1.action = "xxx.php";

を記述する必要はありません。
また、イメージ画像がサブミットボタンになっているので、

document.form1.submit();

は無くても動作します。(私の前回の書き込みでは記述されてますが、間違いです(笑))
つまり、javascript部分の記述は、

<script language=javascript>
<!--
function Test(answer) {
document.f1.Q1.value = answer;
}
//-->
</script>

↑これだけでいいってことですね。

--------------------

変数名 answer についてですが、これはこのページのjavascript内で使われているだけなので、次のページでは関係のない変数名です。次ページでは、$_POST['Q1'] に値が渡されて来ているので、それを(PHPスクリプト内で)処理すれば良いということになります。
midoさんはちょっとjavascriptに詳しくないようなので丁寧に書くと、

【1】<input type="image" src="abcd.gif" alt="あああ" Onclick="Test('あああ')">をクリックした。

【2】function Test(answer)の「answer」に「あああ」が渡される(代入される)

【3】document.f1.Q1.value = answer; でフォームの「Q1」の値がanswerすなわち「あああ」にセットされる

【4】「Q1」が「あああ」セットされた状態でフォームがサブミットされる。

ってことです。
Parent: 1225  reply: 1227 返信 編集 削除

[1227] ありがとうございます

user: mido | created: 2004-01-14 21:45
大変、ご丁寧な回答ありがとうございます。

私も回答のように考えては見たのですが
phpinfo()の内容の$_POST['Q1']に
no value値 が表示されてしまうので
answerを何か別の方法で使用するのかと思ってしまいました。

うまくいかないのは私のプログラムのせいでしょう。もう少し良く見てみます。

初心者の癖に色々とわからないまま突っ込んでしまいますがとても勉強になります。
ありがとうございました。
Parent: 1226  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 699 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑