• 締切済み

画像のファイル名をPOSTで渡す

1.jpg 2.jpg 3.jpg の3つの画像ファイルがあります。 この3つの画像をボタンとして表示して押下したボタンの画像ファイル名をPOSTとして渡したいのですが、下記のソースだとどれを選択しても 3.jpgが渡されてしまうので困っています。アドバイスお願いします。 JavaScriptqを使用しても結構です。 <?php print '<form method="POST" action="b.php">' . "\r\n"; for($i=1;$i<=3;$i++){  print ' <BUTTON name="image" >' . "\r\n";  print ' <img src="../'.$i.'.jpg" >' . "\r\n";  print ' </BUTTON>' . "\r\n"; } print '</form>' . "\r\n"; ?>

  • PHP
  • 回答数2
  • ありがとう数0

みんなの回答

  • wp_
  • ベストアンサー率54% (132/242)
回答No.2

[送信元php] <form action="<?php /*送信先php*/ ?>" method="POST" name='f1'> <input type="image" name="i1" id="i1" src="1.jpg" onClick="gogo('1.jpg')" /> <input type="image" name="i2" id="i2" src="2.jpg" onClick="gogo('2.jpg')" /> <input type="image" name="i3" id="i3" src="3.jpg" onClick="gogo('3.jpg')" /> <input type="hidden" name="fileName" value="" /> </form> <script type="text/javascript"><!-- function gogo(arg) {  document.getElementById('fileName').value = arg;  document.getElementById('f1').submit; } // --></script> [送信先php] <?php print_r($_POST); ?> こんな感じかな。動作確認はしてない。 肝として「ボタンが押された→値を変更→送信」の流れを理解すると良いです。 (onclick -> gogo()が呼ばれる -> fileNameタグのvalueが引数argになる -> f1をsubmit) 3.jpgが必ず出てしまう原因としては、同じ変数名で送信しているから 最後のものが優先して送信されているものと思われます。 <form action="自身"> <input type="hidden" name="moge" value="hoge" /> <input type="hidden" name="moge" value="moge" /> <input type="hidden" name="moge" value="gyo-" /> <input type="submit" /> </form> <?php print_r($_POST); ?> とするとgyo-が出るはずです。

noname#225112
noname#225112
回答No.1

for文の中に、 type="hidden"で$i.jpgを渡すタグを記入してはどうでしょうか? for($i=1;$i<=3;$i++){  print " <input type=\"hidden\" name=\"image\" value=\"$i\">";  print ' <BUTTON name="image" >' . "\r\n";  print ' <img src="../'.$i.'.jpg" >' . "\r\n";  print ' </BUTTON>' . "\r\n"; }

tttrrrr
質問者

補足

hiddenを追加してPOSTを表示してみましたが、やはり3.jpgが 表示されてしまいます。何か間違っていますか? <?php print "<form method=\"POST\" action=\"b.php\">"."\r\n"; for($i=1;$i<=3;$i++){  print " <input type=\"hidden\" name=\"image\" value=\"../$i.jpg\">";  print "<button type=\"submit\" name=\"image\" value=\"../$i.jpg\">"."\r\n"  print "<img src=\"../$i.jpg\">"."\r\n"; print "</button>"."\r\n"; } print '</form>' . "\r\n"; print $_POST["image"]; ?>

関連するQ&A

  • スマホサイトでの画像をPOST

    スマホサイトで画像アップロードのフォームを作成しています。 5つほど添付できるようにしています。 form.php <form action="./send.php" method="post" enctype="multipart/form-data" novalidate="novalidate"> 画像<br> <?php for($i = 1; $i <= 5; $i++) { echo '<input type="hidden" name="item_img_name[' .$i. ']" value="' .$_SESSION['item_img_name'][$i]. '">'."\n"; echo '<input type="file" name="item_img[' .$i. ']" id="item_img_' .$i. '" value=""><br>'."\n"; } ?> <input type="submit" value="送信"> </form> 以上の内容でフォームを作成しております。 問題なのが、サブミットした際send.phpに切り替わるのがかなり遅く大変困っています。 1つにつき2MGの画像サイズを早くPOSTさせる方法はありませんでしょうか。

    • 締切済み
    • PHP
  • 配列をPOSTで受けとる

    タイトルのまんまですが 配列をformで送って それをPOSTで受け取りたいのですが うまくいきません 具体的に言うと <?php print"<form method=POST action=action.php>"; for($i=0; $i<$n; $i++){    print"<input type=text name=foo[$i]>"; } print"<input type=hidden name=n value=$n>"; print"<input type=submit value=go>"; print"<form>"; ?> ///////////以下action.php////////////////// <?php $n = $_POST["n"]; for($j=0; $j<$n; $j++){    $foo[$j] = $_POST["foo[$j]"];    print"$foo[$j]"; } ?> こんな感じのことがしたいのですが うまくいきません どうもPOSTされてないみたいでfoo[$j]はnullです 凡ミスな気がしなくもないんですが...プログラム初心者なんで↓↓ 教えてください よろしくお願いします

    • ベストアンサー
    • PHP
  • post送信のについて

    post送信について ボタン部分は画像にし、下記のように設定しましたが ちゃんとできてますでしょうか?ボタンを押しても飛ぶのはとびますが ちゃんとPOST送信になってるのか不安です。 ちなみにURLを残さないようにしてるはずがfirefoxだと残ってましたので 間違ってると思ってます。。 <script type="text/javascript" > var element = document.createElement("input"); document.form[0].appendChild(element); document.form[0].method = "post"; document.form[0].action = "test.aspx"; </script> <body> <form action="URL" method="post"> <input name="form1" type="image" src="images/test.jpg" alt=""> </form> <form action="URL2" method="post"><input name="form2" type="image" src="images/test.jpg" alt=""> </form> </body>

  • 投稿画像の表示

    下記のコードは画像送信するホームです、 参照ボタンで画像を指定して送信するのですが、 print "<FORM NAME=\"Form1\" METHOD=\"POST\" ACTION=\"./photo.cgi\">\n"; print "<INPUT TYPE=\"file\" NAME=$file_1 VALUE=\"\">\n"; print "<INPUT TYPE=\"submit\" NAME=\"button\" VALUE=\"新規投稿\">\n"; 送信する時に画像を別のウィインドウに表示して確認してから送信出来るようにonSubmitを使って引数に参照ボタンで指定した画像のURLを渡して別のウィインドウに画像を表示するにはどうすれば良いですか。 よろしくお願いします。

    • 締切済み
    • CGI
  • formに複数ボタンを配置し、それぞれのボタンに対して、別の複数の値を

    formに複数ボタンを配置し、それぞれのボタンに対して、別の複数の値をPHPに受け渡したいのです。 例としは下記のような命令をしたいのですが、どうしても解決策がわかりません。 1.jpgで作成したボタンをクリックすると、textの"コンニチワ"、textの30、1.jpgが1.phpへ送られる。 2.jpgで作成したボタンをクリックすると、textの"コンバンワ"、textの50、2.jpgが1.phpへ送られる。 下記は、一応自分で作成したものです。 ●sample.html <form method="post" action="1.php"> <input name="namae"type="text"value="コンチニワ"> <input name="namae"type="text"value="コンバンワ"><br> <BUTTON type ="submit"name="submit1"> <IMG src="1.jpg"> </BUTTON> <BUTTON type ="submit"name="submit2"> <IMG src="2.jpg"> </BUTTON><br> <input name="price"type="text"value="30"> <input name="price"type="text"value="50"> -------------------------------- 【sample.htmlの希望表示】 namaeテキスト  namaeテキスト ボタン画像    ボタン画像 priceテキスト  priceテキスト -------------------------------- ●1.php <?php $namae=$_POST['namae'] $kakaku=$_POST['price'] $image=&_POST['image'] ?> もしかしたら、imageについては表示させないテキストに隠して値だけ送るという 手もあるかもしれません。やり方がわかりませんが。

    • 締切済み
    • PHP
  • formに複数ボタン配置と複数の値受け渡しにつきまして、下記のような命

    formに複数ボタン配置と複数の値受け渡しにつきまして、下記のような命令をしたいのですが、どうしても解決策がわかりません。 1.jpgで作成したボタンをクリックすると、textの"コンニチワ"、textの30、1.jpgが1.phpへ送られる。 2.jpgで作成したボタンをクリックすると、textの"コンバンワ"、textの50、2.jpgが1.phpへ送られる。 下記は、一応自分で作成したものです。 ●sample.html <form method="post" action="1.php"> <input name="namae"type="text"value="コンチニワ"> <input name="namae"type="text"value="コンバンワ"><br> <BUTTON type ="submit"name="submit1"> <IMG src="1.jpg"> </BUTTON> <BUTTON type ="submit"name="submit2"> <IMG src="2.jpg"> </BUTTON><br> <input name="price"type="text"value="30"> <input name="price"type="text"value="50"> -------------------------------- 【sample.htmlの希望表示】 namaeテキスト  namaeテキスト ボタン画像    ボタン画像 priceテキスト  priceテキスト -------------------------------- ●1.php <?php $namae=$_POST['namae'] $kakaku=$_POST['price'] $image=&_POST['image'] ?> もしかしたら、imageについては表示させないテキストに隠して値だけ送るという 手もあるかもしれません。やり方がわかりませんが。

  • formでsubmitの代わりに画像を使ったとき、POSTできるか

    表題の件で質問です。 どちらかというとHTMLよりな質問になりますが、受け取り側がPHPなのでこちらで質問させていただきます。 まず <form action="受け取りのURL" method="post"> <input type="image" src="....gif" name="image"> <input type="hidden" name="data" value="渡すデータ"> </form> として、受け取りに、 <? $data=$_POST["data"]; printなりの処理; //あるいは if(isset($_POST["image"])) { $data=$_POST["data"]; printなりの処理; } ?> としますが、受け取りURLにとんでもうまくPOSTでデータが渡りません。 type="iamge" を type="submit"に変えればPOSTされます。 submitの代わりにイメージ画像を使うと、POSTできないのでしょうか。

    • ベストアンサー
    • PHP
  • ファイルアップロードについて

    ファイルアップロードについて質問させて下さい。 ID、ファイルアップロードの機能の2つがあります。 ファイルを指定し、submitボタンを押下すると「b.php」に遷移します。 ファイルをアップロードした場合には遷移をせず ID、画像パスが入力されている場合のみ「b.php」に遷移したいのです。 入力チェックはjavascriptで行っていますが、その場合には「action=""」として javascript側で遷移するしか方法は無いのでしょうか? ---a.php---- <form enctype="multipart/form-data" action="b.php" method="post" name="a"> <input type="hidden" name="MAX_FILE_SIZE" value="50000000" /> <table> <tr> <th>ID</th> <td><input type="text" name="ID" value=""></td> </tr> <tr> <th>画像</th> <td><input type="file" name="img" value=""> <input type="submit" name="upload" value="upload"> </td> </tr> </table> <a href="#" onClick="javascript:check('a');"><img src="button.jpg"></a> </form> お手数ですが、ご教授よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 特定のデータだけををソートしたい

    POSTで渡されたデータの中から特定のデータだけを取り出しソートしたい。 例えばNo・名前・年齢のtextを数個表示してNoだけを抽出し、ソートして昇順にしたいのですが? print '<form name="form1" action="eee.php" method="POST">' . "\r\n"; for($i=0;$i<5;$i++){ print '<input type="text" name="N0'.$i.'">' . "\r\n"; print '<input type="text" name="Name'.$i.'">' . "\r\n"; print '<input type="text" name="Age'.$i.'">' . "\r\n"; } print '<input type="submit" value="送信">' . "\r\n"; print '</form>' . "\r\n";

    • 締切済み
    • PHP
  • アップした画像を表示

    よろしくお願いします。 現在 <form action="" name="pic" method="post" enctype="multipart/form-data"> <input type="file" name="header_pic" value="" onchange="uproad_header()"> でonchangeで変更があるとsubmitを実行して画像を入れ替えています。 サーバー上のファイルは変わっています。 表示は <img src="pic1.jpg" width="58" height="58"> です サーバー上のファイルは変わっているので 更新ボタン(F5)を押すと画像は入れ替わるのですが 更新ボタンを押さずにアップされた時点で画像が入れ替わって表示する方法はないでしょうか? PHP5でやっています。 以上説明が下手ですみませんがよろしくお願いします。

専門家に質問してみよう