- ベストアンサー
買い物カゴの作成
質問です。HTMLはまったくの初心者なのです。 一応項目を白、赤(1000円)、黄色 (+500円)があり、他には買い物カゴボタンと 数量を入れる箇所があるのですが 項目を赤(1000円)を選んで買い物カゴボタン を押しても当然値段は変わることがありません。 なんとか値段も変わるようにしたいのですが、 <INPUTtype='hidden'name='sy'value='************'> この***********の部分には数字が入っているのですが ここを変えれば買い物カゴに登録してある別の商品に変わることは確認しています。(リンク先が変わる) そこでいくつも<INPUTtype~~************'>を作 り、赤(1000円)や白、の項目を変えれば自動で 別のリンク先(別の商品に)行くようにHTMLを書き 換えたいと考えています。どのようにHTMLを変えればよいのでしょうか? <TITLE></TITLE> </HEAD> <BODY><FORM action='http://www.e-sho***.jp/*****/*****_order_***.php' method='post' target='_blank' style='margin:0;font-size:10pt'> 色:<SELECT name="spec1"> <option value="色:白">白</option> <option value="色:赤(+1000円)">赤(+1000円)</option> <option value="色:黄色(+500円)">黄色(+500円)</option> </SELECT> <br> <BR> <!-- 数量指定ここから --> 注文数<INPUT size='3' type='text' maxlength='3' style='ime-mode: disabled' value='1' name='suryo'> 個 <!-- 数量指定ここまで --> <br> <INPUT type='submit' value='カゴに入れる'> <INPUT type='hidden' name='button' value='追加'> <INPUT type='hidden' name='sy' value='************'> <INPUT type='hidden' name='sh' value='***'>
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#3です。 前回紹介したスクリプトで質問された通りの結果がでたようでよかったです。 スクリプトエラーの件ですが、こちらの環境(Dreamweaver)ではエラーはでませんでした。 また、実際の表示では問題ないということですので大丈夫かとは思いますが、思い当たるのは表示ブラウザのバージョンの問題です。 ブラウザのバージョンが古いと「オブジェクトを指定してください」というエラーがでる場合があります。 そのあたりはあまり詳しくはないので、はっきりしたことは申し上げられませんが、推測するにはそのホームページビルダーのブラウザをエミュレート(再現)する環境が古いのではないかな…とはなんとなく思います。(^-^; ------------------------------------------------- 蛇足ですが、先日書いたスクリプトはjavascriptを使用していますが、これは利用者のブラウザが古い場合やjavascriptがオフになっている場合には利用できません。ですので本来ならばCGI(レンタルしたショッピングカートですね)側で実現するべきことです。 まして、金銭を扱うショッピングカートですので本当はこのスクリプトはあまりオススメできません。 ですのでもしそういったことに配慮するのであれば、「Tシャツ赤 1,000円 『買い物かごに入れる』」「Tシャツ青 3,000円 『買い物かごに入れる』」「Tシャツ黄 5,000円 『買い物かごに入れる』」と全て別々で記述したほうがよいでしょう。 またもしCGI側で実現させたい場合はフリーのショッピングカートCGIなどをご自分で導入されたほうがよいかと思います。 下のアドレスはわたしがお遊びで作ったショッピングサイト(本当のお店ではない)ですが、これもフリーのショッピングカートのCGIを使っています。 http://bakeryash.jpn.org/shopping/list_basic1.html ------------------------------------------------- 前回紹介しましたスクリプトは複数設置する場合は変更しなければいけない箇所があるのですが、お気づきでしょうか? <FORM name=form1>とCart001の部分ですが…。 また何かあったら補足してください♪
その他の回答 (5)
#3です。 ふと思いついたので適当に書いてみました。 カートは試用するのに申し込んでから時間がかかるようなのでカート上では実行してみてはいません。 なのでうまく動くかどうかはわからないですが…。 色を選択すると<INPUT type='hidden' name='sy' value='************'>と<INPUT type='hidden' name='sh' value='***'>の*の値が連動して変化するようにしたスクリプトです。 一度試してみてもらえますか? とりあえず変更箇所は●、■、▲の部分だけです。(//のあとに記述されたコメント部分は変更しなくてよいです。) 根本的に意味が違ったらすみません。(^-^;; <html> <head> <TITLE></TITLE> </HEAD> <BODY> <FORM name=form1 onsubmit="mai('s');return false;" action='http://www.e-sho***.jp/*****/*****_order_***.php' method='post' target='_blank' style='margin:0;font-size:10pt'> 色: <SELECT onchange=Cart001(); name="spec1"> <OPTION value=0 selected>選択してください </OPTION> </SELECT> <br> <BR> <!-- 数量指定ここから --> 注文数 <INPUT size='3' type='text' maxlength='3' style='ime-mode: disabled' value='1' name='suryo'> 個 <!-- 数量指定ここまで --> <br> <INPUT type='submit' value='カゴに入れる'> <INPUT type='hidden' name='button' value='追加'> <input type="hidden" onchange=Cart001(); name=sy> <input type="hidden" onchange=Cart001(); name=sh> </form> <script type="text/javascript"> document.form1.spec1.length = 4; document.form1.spec1.options[1].text = "赤 (1,000円)"; //● document.form1.spec1.options[2].text = "青 (3,000円)"; //■ document.form1.spec1.options[3].text = "黄 (5,000円)"; //▲ </script> <script type="text/javascript"> <!-- function Cart001(){ document.form1.sy.length = 1; var n = document.form1.spec1.selectedIndex switch (n) { //ここより下、商品番号を変更する case 1: //1番目の商品番号 (●) document.form1.sy.value = "●"; // 赤の場合の<INPUT type='hidden' name='sy' value='************'>の************に入る値を●に置き換える document.form1.sh.value = "●"; // 赤の場合の<INPUT type='hidden' name='sh' value='***'>の***入る値を●に置き換える break; case 2: //2番目の商品番号 (■) document.form1.sy.value = "■"; // 青の場合の<INPUT type='hidden' name='sy' value='************'>の************に入る値を■に置き換える document.form1.sh.value = "■"; // 青の場合の<INPUT type='hidden' name='sh' value='***'>の***入る値を■に置き換える break; case 3: //3番目の商品番号 (▲) document.form1.sy.value = "▲"; // 黄の場合の<INPUT type='hidden' name='sy' value='************'>の************に入る値を▲に置き換える document.form1.sh.value = "▲"; // 黄の場合の<INPUT type='hidden' name='sh' value='***'>の***入る値を▲に置き換える break; //変更ここまで } } // --> </script> </body> </html>
補足
すばらしいです。出来ました。ありがとうございます。 ただ問題が一つ出たのですが・・。 このソースを使ってボタンを作成すると、Internet expolrer スクリプトエラー というのが出ます。 ライン 9 文字 1 オブジェクトを指定してください。 URL ・・・・・・・ このスクリプトを実行し続けますか?と聞かれ はいを押すとちゃんと実行できます。 このエラー文字はなぜ出るのでしょうか? ボタンを押すごとに毎回でます。 どうにか解決できる方法はないでしょうか? よろしくお願いします。。
- partita
- ベストアンサー率29% (125/427)
#2です。 デフォルトの買い物カゴの仕様改造と解釈しました。 1.セレクトメニューにonChangeで関数を起動させるようにしてはどうでしょうか。hiddenの値をphpに渡す関数です。 2.<option value="色:白">白</option>のvalue値って、意味をなしていないと思うのですが…。
横レスすみません。 もしよろしければそのレンタルカートのアドレスを教えていただけますか? レンタル元でいいです。 そのカート自体を見ることができれば的確なアドバイスができると思いますよ。
お礼
前のソースエラーが出たというのはホームページビルダーの中でのプレビューでの話です。実際HPにアップし、使う分には何も 表示されませんし、問題なく使えます。 ただホームページビルダーの中ではスクリプト エラーと出たので気になりました。
補足
ありがとうございます。 http://cart.e-shops.jp/ ここのレンタルカートなのですが、属性(セレクト メニュー)はいくつも作ることは出来るのですが 属性ごとに値段を変える機能がないため困っています。 お試し期間もありますので一度使っていただける と助かります。 具体的に言いますと http://www.aromashop.jp/shop/ProductSearch.do;jsessionid=BD5ACFA8466AAB944FC1C0EE2D00953C?action=simplelist&search=2&grand_genre_id=105&genre_group_id=1&sub_genre_id=10501 ここのHPのように項目ごとに値段を付けたいの ですが、イーショップは属性が決めることが出来ても 値段をそれぞれ付けるといったことが出来ません。 よろしければアドバイスお願いします。
- partita
- ベストアンサー率29% (125/427)
質問の意図がいまいちわかりません。 >赤(1000円)や白、の項目を変えれば自動で 別のリンク先(別の商品に)行くようにHTMLを書き 換えたいと考えています。 とありますが、では、「カゴに入れる」ボタンを押したら移動するのではなく、「セレクトメニューを変えたら自動でページが移動する」と解釈してもよいでしょうか。また、その際に表示されるページの内容は?
補足
説明が足らずすみません。 >では、「カゴに入れる」ボタンを押したら移動する >のではなく、「セレクトメニューを変えたら自動で >ページが移動する」と解釈してもよいでしょうか。 >また、その際に表示されるページの内容は? いえ、セレクトメニューを変えたら自動でページが 移動するのではなく、セレクトメニューを選んで 買いのもカゴボタンを押して、移動します。 ここは変更はありません。問題は移動先ですが、移動先をセレクトメニューで変更できるようにしたいと考 えています。 移動先ですが、私が使っているレンタルカートは 一番最初に書いたソースを登録商品ごとにくれます。 このソースをHTMLとして貼り付けるとボタンも 出来て、ボタンを押すとリンク先に飛ばされます。 (商品ごとの違いは先にも書きましたが****の数字のみです。つまり商品の数だけ数字があるわけです。) そこでセレクトメニューで項目を選ぶとこの数字も連 動して変わるようにHTMLを書き換えられば 価格の違う複数の商品を一つのボタンでまとめられるので全て上手くいくのですが・・。 とてもややこしい説明で申し訳ありません。 意味の分からないところがあれば指摘してください。 よろしくお願いします。
HTMLだけでは動作しませんがそのあたりはご存知なのですよね? フォームだけ作ってもだめですよ。
補足
すみません。フォームだけでは作動しないというのは なぜでしょうか?私は作動すると思うのですが・・。 カートで商品登録するとカートボタン付きのHTML (ソース)を貰うことが出来ます。(前に書いた物です。) しかし何個登録しても同じソースがもらえるます。 違うのは12桁ほどの数字だけです。 つまりこの数字が商品の識別番号ではないのでしょうか?。手動で数字を変えてみると別の登録した商品 に飛ばされ、買い物カゴにその商品が入ります。 その手動でやった部分を、項目(商品の属性)を選ぶ ことで自動で任意の数字が適応され、商品を買い物カ ゴに入るようにしたいです。 このようなことはやはり出来ないのでしょうか? よろしくお願いします。
お礼
丁寧な説明本当にありがとうございました!!