• ベストアンサー

cgiのショッピングカートで画像を表示させたい

買い物かごの中身のページに画像を使いたいのですが、 どのようにしたらいいのでしょうか? print "<input type=submit value=\"order\"> <input type=reset value=\"reset\"></form><p><br>\n"; となっているところを print "<input type=image src=\"http://www.yahoo.co.jp/image/order.jpg\"> <input type=reset value=\"reset\"></form><p><br>\n"; のような感じで変更してみたのですが、 画像はちゃんと表示されるものの、Orderボタンを押して次の確認ページに移ると x 12 y 32 みたいな余計なデータが勝手にテーブル内に表示されてしまって困っています。 上記の変更をするぐらいで、なんでこんなことがおこるのかよく分かりません。 どなたか知っている方がいらっしゃたら、教えてください。 お願いします。

  • CGI
  • 回答数5
  • ありがとう数4

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

  • ベストアンサー
  • wolfwood
  • ベストアンサー率50% (199/398)
回答No.5

#4のwolfwoodです。 少し説明不足でしたね。すみません。 どのようなエラーかわからないのですが、 もうひとつ変える部分があります。 それは<FORM name="フォーム名">の部分です。 このフォーム名はひとつの<FORM></FORM>で囲まれた部分につけられる名前です。 そして、リンクを<A href="javascript:document.フォーム名.submit()">と書きます。 このフォーム名を半角英数字で決めてください。 CGIの方を見ましたが、すでにフォーム名が設定されている部分もあるようですね。もしすでに設定されているのでしたら、<A href="document.フォーム名.submit()">のフォーム名を設定されているものに変えてください。 というか同じ処理がCGI内で行われていますね。 <input type=button value='*********' onClick='hogehoge()'> こういう部分がありますよね。これを <A href='javascript:hogehoge()'><IMG src='画像URL'></A> としてください。 hogehoge()の部分ですでにsubmit()の処理が記述されていました。 これで直らない場合はエラーの内容、部分を教えてください。

iroiro8
質問者

お礼

wolfwoodさん、遅くなりましたが、おかげさまでできました! どうもありがとうございます。 結局、<form method=$method action=\"$webform\"> を <form method=$method action=\"$webform\" name=\"Order\"> にしたらちゃんとうごいてくれました。 文法の意味もよく分かりませんでしたが、数撃ちゃあたるんですね。 色々どうもありがとうございました。

iroiro8
質問者

補足

wolfwoodさん、ご丁寧なアドバイス、本当にありがとうございます。 さっそくで申し訳ないんですが、 <input type=button value='*********' onClick='hogehoge()'> の部分が、 私の使っているCGI(前のバージョンなんです)にはそのような記述が見当たりませんでした。 そこで最新版をダウンロードしてみると、 <input type=button value=' → 最終確認へ進む ' onClick='Kakunin()'> という部分を見つけまして、私は「これだ!」と思ったのですがあってますか? あっているという前提で <SCRIPT language="JavaScript"> <!-- SubmitCheck=false; function Submit() { if(SubmitCheck==false){ SubmitCheck=true; document.Order.submit(); } else{ bottonAlert(); } } function bottonAlert() { Check = navigator.userAgent.indexOf(";"); if(Check != -1 && navigator.userAgent.substring(Check+2,Check+10)=="MSIE 3.0") { alert("ボタンが2度押されましたので、再度実行してください。"); } else { alert("送信中ですのでお待ちください。"); } } function Kakunin() { if(SubmitCheck==false){ Submit(); } else { bottonAlert(); } } //--> </SCRIPT> と <SCRIPT> <!-- document.write("<A href='javascript:Kakunin()'><IMG src='画像URL'></A></form><p><br>\\n"); // --> </SCRIPT> を追加してみたのですが、ボタン自体が表示されませんでした。 そこで、元々の <SCRIPT> <!-- document.write("<input type=button value=' → 最終確認へ進む ' onClick='Kakunin()'> <input type=reset value='× 書き直し'></form><p><br>\\n"); // --> </SCRIPT> に変更してみたのですが、これでもボタンが表示されませんでした。 なので、wolfwoodさんのアドバイス以前の私の問題のようです。 いま、ちょっと色々自分で試せてないので、もうすこし時間をかけて色々やってみようと思います。それとも上記の記述で明らかにおかしいところでもあるのかな? またお聞きしたいことが出てくるかもしれませんが、 お時間あったらまたアドバイスして頂けたら嬉しいです。 うまくいったらそれも報告されていただきますね。では。

その他の回答 (4)

  • wolfwood
  • ベストアンサー率50% (199/398)
回答No.4

原因は解ったようなので、画像submitボタンの設置について書きます。 JavaScriptを使えば実現できます。 画像リンクの方法で遷移先をJavaScriptの処理に置き換えれば良いです。 例) <FORM name="test" method="***" action="***"> <A href="javascript:document.test.submit()"><IMG src="画像URL"></A> </FORM>

iroiro8
質問者

補足

せっかく教えて頂いたのに恐縮なんですが、 上記はあくまで例ですよね? でも僕には上記のどこの部分を変更するべきか悩んでおります。 2つの***と画像URLの部分を変更するだけであってますか? その3箇所を変更してやってみたのですが、 うまく次のページに移動してくれません。 そしてIEの画面の左下に「ページでエラーが発生しました。」とでてしまいます。 それとも他に修正するところがあるかな? お時間合ったら、アドバイスお願い致します。

  • duckling
  • ベストアンサー率47% (88/185)
回答No.3

<input type="image"> を submit として使用すると クリックした「x座標」と「y座標」が送信されます。 もともと x座標 と y座標 を送信するものなので 「余計なデータ」とは言えず、「送信しない」という設定には出来ないと思います。 CGI の大幅な改造が出来るほどの知識がないと ちょっと難しいのではないでしょうか。 JavaScript をよく見たら、何とかなるかも知れないですが。

iroiro8
質問者

お礼

あの数値は、クリックした「x座標」と「y座標」だったんのですね。 全然、分かりませんでした。 僕みたいな人が安心して使うには画像をしようしない方がいいということでしょうね。 アドバイスどうもありがとうございました。

  • kaz_house
  • ベストアンサー率46% (185/395)
回答No.2

簡易バスケットでしたか。 じゃあ専門家は辞めて一般にしときますね。 触ったことはなかったので。Ver.3なら得意なんですが。 さて、こちらのローカルでも同様の症状が出ました。 $_になぜか余計なデータが入っているようですね。 根本的な解決じゃないんですが、webform.cgiのデフォルトで 160行目に foreach (0..$count-1) { とあるのを foreach (0..$count-3) { とすると画面表示上は消えます。この操作で他に どのような悪さをするかわかりませんので このスクリプトにする場合は十分検証を行って ください。 根本的な解決にならず申し訳ありません。 #JavaScriptが動いているのでその辺とimage表示のタグが 干渉しているような気もするのですが確証は持てません。

iroiro8
質問者

お礼

さっそくのアドバイスどうもありがとうございます。 >根本的な解決にならず申し訳ありません。 そんなことありません。感謝感謝です。 アドバイス通り、検証を充分してみますね。

  • kaz_house
  • ベストアンサー率46% (185/395)
回答No.1

>画像はちゃんと表示されるものの、Orderボタンを押して次の確 認ページに移ると 次のページのソースがわからないのでお答えのしようがないですね。どこで配布されている買い物カゴでソースの何行目、という情報があればお答えできるかもしれませんよ。

iroiro8
質問者

お礼

今のバージョンをダウンロードしてみたのですが、 中身が相当変わっていまして、僕が使っているのはだいぶ前のやつみたいですね。 今のやつだと 285 286 287 行めがその部分だと思います。

iroiro8
質問者

補足

すいませんでした。 web裏技さんの簡易ショッピングバスケットです。

関連するQ&A

  • CGIプログラムでのボタン表示のさせかた

    print "<form action=\"$script\" method=\"POST\" target=\"_blank\">\n"; print "<input type=hidden name=mode value=note>\n"; print "<input type=hidden name=job value=blank>\n"; print "<input type=submit value="説明表'>"</form>\n"; print "<form action=\"$home\" method=\"POST\" target=\"_blank\">\n"; print "<input type=hidden name=mode value=_top>\n"; print "<input type=hidden name=job value=blank>\n"; print "<input type=submit value='トップ'></form>\n"; というCGIプログラムの文章があるのですが、 上記の記述で実行すると、 「説明表」ボタンと、「トップ」ボタンが縦に並んで表示されてしまいます。 これを、横に表示させるようにするには、 どのように変更すばいいのでしょうか? 参考になるかわかりませんが、「説明表」をクリックして表示される文章は、 他のCGIプログラムの中に記述されています。

    • ベストアンサー
    • CGI
  • WEBサイトからファイルマネージャへ直接画像をアップロードするには

    はじめまして。 自分のサイトのページからファイル参照をし、 [<FORM method="POST" enctype="multipart/form-data" action="img_upload.php"> <INPUT type="hidden" name="MAX_FILE_SIZE" value="65536"> 画像のファイル名を入力してください(最大64KByte) <INPUT size="30" type="file" name="upfile"><BR> <BR> <INPUT type="submit" name="submit" value="送信"> <INPUT type="reset" name="reset" value="リセット"> </FORM>] 自分の借りているレンタルサーバにあるファイルマネージャへ直接画像をアップし、 違うページで表示させたいのですが可能でしょうか。 サンプルソースや参考になるサイトを教えていただけるとありがたいです。 どうかよろしくお願いいたします。

  • ショッピングカートの送信ボタンを画像にするには!?

    ショッピングカート自体はちゃんと機能しているのですが、送信ボタンを画像にするのにはどうすればよいのでしょうか。よろしくお願いします。 ちなみに今の設定はこんな感じになってます。 <form method=post action="cart.asp"> <input type=hidden name="action" value="regist"> 商品A <input type=hidden name="goods" value="商品A"> 単価 1,000円 <input type=hidden name="unit" value="1000"> 購入数 <input type=text name="amount" value="0" size=3>個<br> 備考 <input type=text name="rem" value="" size=20> <input type=submit value="カゴへ"> </form> これをxxx.jpgという画像のボタンにしたいのですが…

  • cgiログデータ入力

    下記のようなものを作成しました。 if ($FORM{'WORD'} eq 'フォーム'){ &form; } elsif($FORM{'WORD'} eq '確認'){ &kakunin; } elsif($FORM{'WORD'} eq '入力'){ &nyuuryoku; } sub kakunin{ print "<FORM METHOD=POST ACTION=top_nyuuryoku1.cgi>\n"; print "<TABLE CLASS=TABLE2 CELLSPACING=0 CELLPADDING=2>\n"; print "<TR><TD WIDTH=80 CLASS=TD1>社員番号</TD><TD CLASS=TD2>$FORM{'BANGOU'}<INPUT TYPE=HIDDEN NAME=BANGOU VALUE=$FORM{'BANGOU'}></TD></TR>\n"; print "<TR><TD WIDTH=80 VALIGN=TOP CLASS=TD1>本文</TD><TD CLASS=TD2>$FORM{'NAKAMI'}</TD><INPUT TYPE=HIDDEN NAME=NAKAMI VALUE=$FORM{'NAKAMI'}></TR>\n"; print "</TABLE>\n"; print "<BR>と入力されました。これでよければボタンを押してください。<BR><BR>\n"; print "<INPUT TYPE=HIDDEN NAME=WORD VALUE=入力>\n"; print "  <INPUT TYPE=SUBMIT CLASS=BUTTON VALUE=入力>\n"; print "</FORM>\n"; } sub nyuuryoku{ print "入力しました。<BR>\n"; print "<A HREF='top.cgi'>戻る</A>\n"; open (FILE,">>top.log"); flock(FILE,2); @FILES = "$buffer\n"; print FILE @FILES; flock(FILE,8); close(FILE); } ※多少省略あり。 ※$bufferはこれの前のページから受け取ったもの。 kakuninのところの$FORM{'NAKAMI'}ではちゃんと半角スペースや改行が認識されていますが、nyuuryokuになるとだめです。 一体何が原因なのでしょうか?

    • ベストアンサー
    • CGI
  • CGIでフォームからの入力内容を表示されない。

    初歩的な質問ですみません。 自宅サーバを使っています。 ■ActivePerl 5.8.8 Build 822 ■httpd142p ------------------------------ ■httpd142p ┗■cgi-bin  ┣■cgi-lib.pl  ┣■test.cgi  ┗■test.html ------------------------------- CGIは動作します。 一行目のパスもあっています。 --------------------------- 【test.cgi】 #!C:/perl/bin/perl #require './cgi-lib.pl'; #&ReadParse(*MYDATA) print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<TITLE>RESULT</TITLE>\n"; print "<BODY>\n"; print "氏名 = $MYDATA{'simei'}\n\n"; print "住所 = $MYDATA{'jyusyo'}\n"; print "</BODY>\n"; print "</HTML>\n"; exit; -------------------------------- 【test.html】 <HTML> <HEAD> <TITLE>TEST</TITLE> </HEAD> <BODY> <P> <FORM ACTION="test.cgi" METHOD="POST"> 氏名:<INPUT TYPE="text" NAME="simei"> 住所:<INPUT TYPE="text" NAME="jyusyo"> <INPUT TYPE="submit" VALUE="送信"> <INPUT TYPE="reset" VALUE="リセット"> </P> </FORM> </BODY> </HTML> ---------------------------------- ■実行結果 氏名 = 住所 = ---------------------------------- どなたかご教授ください。

    • ベストアンサー
    • CGI
  • POST からの受け渡しができません・・・

    教えてくださいm(__)m <FORM action="<? echo $PHP_SELF; ?>" method="POST"> :(ここにはif文がはいっています。) : print "お名前:<BR>\n"; print "<input type=\"text\" name=\"handle\" size=\"16\" maxlength=\"30\" value=\"<? echo ($handle); ?>\"><br><br>\n"; print "性別:<BR>\n"; for (reset ($sex_tbl); $key = key ($sex_tbl); next ($sex_tbl)) { echo (" <OPTION value=\"" . $key . "\""); if ($key == $sex) echo (" SELECTED"); echo (">" . $sex_tbl[$key] . "\n"); } print "PRポイント:<BR>\n"; print "<input type=\"text\" name=\"pr\" size=\"16\" maxlength=\"30\" value=\"<? echo ($pr); ?>\"><br><br>\n"; print "<CENTER><input type=\"submit\" value=\"次の人!\"></CENTER><br>\n"; print "<input type=\"hidden\" name=\"page\" value=\"kekkapage\">\n"; print "<input type=\"hidden\" name=\"handle\" value=\"" . $_POST['handle'] . "\">\n"; print "<input type=\"hidden\" name=\"sex\" value=\"" . $_POST['sex'] . "\">\n"; print "<input type=\"hidden\" name=\"pr\" value=\"" . $_POST['pr'] . "\">\n";←80 </FORM> : : ↑なのですが、 「・・・on line 80」エラー表示になりうまくいきません。 の部分が原因と表示にはなっているのですが…。 助けてください。 宜しくお願いしますm(__)m

    • ベストアンサー
    • PHP
  • 投稿画像の表示

    下記のコードは画像送信するホームです、 参照ボタンで画像を指定して送信するのですが、 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
  • cgiの記述方法について

    よろしくお願いします。 お問い合わせフォームを作成したくhtmlに以下の記述をしました。 やはり、これではフォームは機能しないようで、form action="../・・ にまだ何かを記述する必要があるようなのですが、書籍を見ても解決出来ずに困っております。 どなた様か、ご指導の程よろしくお願いします。 ご指導いただくにあたり、どこまでの説明が必要なのか分からなかったため、このようなご説明になってしまいましたが、よろしくお願い致します。 【html】 <form action="../cgi-user/questionform.cgi" method="post"> <p>お名前 <br /><input type="text" name="メルマガお名前" size="40" /> </p> <p>メールアドレス <br /><input type="text" name="email" size="40" /> </p> <p> <input type=submit value="登録" /> <input type="reset" value="リセット" /> </p> </form>

    • ベストアンサー
    • CGI
  • ショッピングカートの作成

    今ショッピングカートを作成しようとしていて商品サンプルがいくつかあり「カートへ」ボタンを押すと精算ページへ飛び精算を行うというプログラムをつくっているのですがいくつかのサンプルでどれを選んでも一番上のサンプルの精算しか行えません。どうすれば解決できますでしょうか?よろしくお願いします。 ショッピングカートのプログラムの一部です。 while($row = mysql_fetch_row($result)){; $code = $row['0']; print "<form method='post' action='cart_syohin2.php'><tr>"; print "<td rowspan='2'>"; if (file_exists("cart_image/$code.jpg")) print "<img src='cart_image/$code.jpg' border='0'>"; print "</td>"; print "<td rowspan='3'>{$row['3']}</td>"; print "<td nowrap>{$row['2']}円</td></tr>"; print "<tr><td nowrap><input type='text' name='num' size='3'>個</td></tr>"; print "<tr><td>{$row['1']}</td>"; print "<td><input type='hidden' name='code' value='$code'><input type='submit' name='cart' value='カートへ'>"; print "</td>"; print "</tr></form>\n"; }

    • 締切済み
    • PHP
  • PHPでフォームから任意の画像削除方法

    複数画像がアップロード出来るフォームがあります。 そのフォームはユーザがアップした画像は、フォームにアクセスする度に表示されます。 <form action="upload.php" method="post" enctype="multipart/form-data"> ファイル:<br /> <input type="file" name="upfile" size="30" /><br /> <input type="reset" name="resetfile" value="削除" /><br /> <input type="file" name="upfile" size="30" /><br /> <input type="reset" name="resetfile" value="削除" /><br /> <br /> <input type="submit" value="アップロード" /> </form> 2つの画像をサーバにアップした段階で 2つ目の削除ボタンを押した時に、2つ目の画像だけを削除したいのですが、良い方法が思いつきません。 代替案はチェックボックスですが、デザインが崩れるので避けたいと思っています。 または、javascriptで出来るようですが、あまり得意でないので、出来れば避けたいと思っています。 良い方法があれば、ご教授お願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう