質問 > フロント機能 > <a href="javascript:void(document.form1.submit())"</a>の設定元 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kenz |
投稿日時: 2013/2/27 1:23
対応状況: −−−
|
常連 登録日: 2010/6/8 居住地: 投稿: 46 |
<a href="javascript:void(document.form1.submit())"</a>の設定元 お世話になっております。
ご存知の方がおりましたらお教え願います。 商品詳細ページの”かごに入れる”ボタンは下記の設定になっておりますが、これはどのファイルでリンク先を指定しているのでしょうか。 <a href="java script:void(document.form1.submit())"xxxx</a> 基本的な質問でお恥ずかしいのですが 宜しくお願い致します。 [EC-CUBE] 2.12 [PHP] PHP 5.2.9 [データベース] MySQL 5.0.77 [ブラウザ]各種、IE、Chorome、Safari等 |
dkazuto |
投稿日時: 2013/2/27 2:48
対応状況: −−−
|
一人前 登録日: 2012/5/10 居住地: 投稿: 95 |
Re: <a href="javascript:void(document.form1.submit())"</a>の設定元 kenz様
この記述はjavascriptでそのHTMLファイル内のform1をsubmit(遷移)することを表しています。 商品詳細ページ /data/Smarty/templates/products/detail.tpl の44行目あたりに
という部分があるかと思います。 HTMLのformでの遷移先はaction属性で設定しますが、ここを見ると action="?" となっています。 ここで、 ? は自分自身に遷移することを示しています。 つまり、商品詳細ページでカートへ入れるリンクを押すと自分自身へsubmit(遷移)する ということになります。 ただし、実際にその後の処理を決めているのは、商品詳細ページのphpファイル内部になります。 /data/class/pages/products/LC_Page_Products_Detail.php の内部で、カートに入れるボタンが押されたことを判別し、 カートページへ遷移させるというような処理が記述されています。 HTMLのフォームに関しては以下のページなどがわかりやすく説明しているかと思います。 http://www7b.biglobe.ne.jp/~homepage-note/html-base-3.html 以上、ご参考ください。 |
kenz |
投稿日時: 2013/2/27 3:58
対応状況: −−−
|
常連 登録日: 2010/6/8 居住地: 投稿: 46 |
Re: <a href="javascript:void(document.form1.submit())"</a>の設定元 dkazuto様
参考にさせて頂きます。そして親切に対応してくださっていくら感謝しても感謝しつくせないです。 こうゆう作りになっていたのですね。 商品詳細ページに下記の部分があり、そのボタンをクリックしてカートページへ行く際にtransactionidをひもづけております。 <form name="form1" id="form1" method="post" action="?"> <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->"/> ご質問はこのtransactionidの後に何らかのcodeを付け加えることは出来ますでしょうか、下記のように。もしYesであれば上記でどんな書き方をすれば宜しいですか。 cart/?transactionid=97a44455rr3fff7777f3c089&code=1 非常に勉強になります。感謝いたします。 |
dkazuto |
投稿日時: 2013/2/27 10:22
対応状況: −−−
|
一人前 登録日: 2012/5/10 居住地: 投稿: 95 |
Re: <a href="javascript:void(document.form1.submit())"</a>の設定元 kenz様
参考になり幸いです。 codeを付け加えることは可能です。 カートページにURLを指定して遷移をさせる部分は 商品詳細ページ内のPHPロジック中に記述があります。 たとえばcode=1をパラメータとしてカートページに送るには、 /data/class/pages/LC_Page_Products_Detail.php の502行目当たりの
というコードを
のように書き換えてやる必要があります。 上記によって cart/?transactionid=97a44455rr3fff7777f3c089&code=1 というようなクエリをカートページに送ることができるようになります。 以上、ご参考ください。 |
kenz |
投稿日時: 2013/2/27 18:08
対応状況: −−−
|
常連 登録日: 2010/6/8 居住地: 投稿: 46 |
Re: <a href="javascript:void(document.form1.submit())"</a>の設定元 dkazuto様
すごいです。大変勉強になります。codeとともに次ページに行きました。 今次のようなことを試みておりますが、設定に問題があるためか、if文を読まずcodeが2の時でも一行目の文であるcode=1に行ってしまいます。最初のif文も機能しておらず、ただ最初のSC_Response_Ex::sendR・・から始まる文を読んでいると思われます。 if ('code' == '1') SC_Response_Ex::sendRedirect(CART_URLPATH, array('code' => '1')); if ('code' == '2') SC_Response_Ex::sendRedirect(CART_URLPATH, array('code' => '2')); このif文のcodeは商品詳細ページのurlが下記のように設定されたものをただ単に使おうとしたものであり、code番号自体はトップページから引いてきたものです。 products/detail.php?product_id=5&code=2 どうゆう設定が必要になるかおわかりになりますでしょうか。 |
dkazuto |
投稿日時: 2013/2/27 18:57
対応状況: −−−
|
一人前 登録日: 2012/5/10 居住地: 投稿: 95 |
Re: <a href="javascript:void(document.form1.submit())"</a>の設定元 kenz様
記載頂いたコードですと、if文の構成が少々間違っています。 下記の様に書き換えてみてください。
URLで指定したパラメータを取得するには、 PHPで$_GETという構文を利用する必要があります。 上記、お試しください。 |
kenz |
投稿日時: 2013/2/27 22:30
対応状況: −−−
|
常連 登録日: 2010/6/8 居住地: 投稿: 46 |
Re: <a href="javascript:void(document.form1.submit())"</a>の設定元 dkazuto様
$_GET があるのですね。すごいです。いろいろとお教え頂きまして感謝致します。 現在、ご指摘された様に試しております。 しかしながら、次ページで画面が真っ白い状態になります。 ネット上で調べておりましたら、以下のリンクを見つけまして、 http://q.hatena.ne.jp/1165915799 現在下記のようにしておりますが、変わりありません。画面が白です。 if (isset($_GET['code'] == '1')){ SC_Response_Ex::sendRedirect(CART_URLPATH, array('code' => '1')); }else{ if (isset($_GET['code'] == '2')) SC_Response_Ex::sendRedirect(CART_URLPATH, array('code' => '2')); } なにかお分かりになりますでしょうか。 |
dkazuto |
投稿日時: 2013/2/28 0:24
対応状況: −−−
|
一人前 登録日: 2012/5/10 居住地: 投稿: 95 |
Re: <a href="javascript:void(document.form1.submit())"</a>の設定元 kenz様
すみません。 私の勘違いでした。 カートボタンを押したときはGETパラメータが引き継がれません。 以下のように変えてみてください。 まず、 /data/Smarty/templates/default/products/detail.tpl の44行目あたりを
から
に書き換えます。 <input type="hidden" name="code" value="<!--{$smarty.get.code}-->" /> という隠しパラメータを送るHTMLをひとつ増やしました。 また、前のレスで話題になっておりました /data/class/pages/products/LC_Page_Products_Detail.php のif文のところを以下のように書き換えます。
上記のように書き換えてみてください。 if文の中をGETからPOSTに変更しております。 カートボタンはGETではなく、POSTでデータを取得するということをすっかり忘れておりました。 商品詳細ページにcode=xxでアクセスし、カートに入れるボタンを押すと code=xxがカートページに引き継がれるという仕様になっています。 また、codeが指定されなかった場合にもちゃんと遷移するようにしてあります。 先ほど私も実際に上記のコードで動作を確認してみましたので、おそらく動くかと思います。 ちなみに、isset関数は値がセットされているかを確認するための関数ですので、 今回は利用しておりません。 以上、お試しください。 |
kenz |
投稿日時: 2013/2/28 6:39
対応状況: −−−
|
常連 登録日: 2010/6/8 居住地: 投稿: 46 |
Re: <a href="javascript:void(document.form1.submit())"</a>の設定元 dkazuto様
うごきました。 思い通りに動作しております。本当にありがとうございます。 大変良い勉強をさせて頂いております。 また、ちょっと関連した問題に直面しております。 カートのページに商品の数量を増減するプラス・マイナスのボタンがありますが、リンクの元は以下になっております。 <a href="?" onclick="fnFormModeSubmit('form<!--{$key}-->','up','cart_no','<!--{$item.cart_no}-->'); return false"> 本件で質問させて頂いておりました事項で、urlがcode=2となっているページであるにもかかわらず、プラス・マイナスボタンをクリックするとデフォルトのページ、ここではurlにcodeがないページに戻ります。 今までと同様のコーディングを組み入れたいと思い、(つまりcode=2の時はプラス・マイナスボタンをおしてもurlにcode=2が付いている状態になる)、いろいろと関連箇所を探しているのですが、どうしても見当たりません。 どこにコーディングを組み入れたら宜しいでしょうか。 申し訳ございませんがお分かりになりますでしょうか。 |
dkazuto |
投稿日時: 2013/2/28 15:50
対応状況: −−−
|
一人前 登録日: 2012/5/10 居住地: 投稿: 95 |
Re: <a href="javascript:void(document.form1.submit())"</a>の設定元 kenz様
そのカスタマイズには、 カートページにも商品詳細ページで加えたような カスタマイズをする必要があります。 まず、 /data/Smarty/templates/cart/index.tpl の73行目あたりの <form .... タグの直下に
を追加します。 また、 /data/class/pages/cart/LC_Page_Cart.php の114行目当たり、case 'up'の
を
に置き換えます。 また、同ファイル124行目あたり、case 'down' も'up'同様に置き換えます。 上記の対応により、カート内で数量を変更してもcodeが引き継がれるようになるかと思います。 以上、ご参考ください。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |