バージョン選択

フォーラム

メニュー

オンライン状況

45 人のユーザが現在オンラインです。 (33 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 44
repair12q もっと...

サイト内検索

質問 > 管理機能 > お支払い方法にコメントを表示させたい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
doux
投稿日時: 2018/8/29 10:40
対応状況: −−−
半人前
登録日: 2017/2/16
居住地:
投稿: 15
お支払い方法にコメントを表示させたい
[EC-CUBE] EC-CUBE 2.13
[レンタルサーバ] ロリポップ
[OS] Mac OS X
[PHP] 5.6
[ブラウザ] Chrome最新版

===

お支払い方法にコメントを表示させる
http://dalmore.blog7.fc2.com/blog-entry-160.html

上のURLと同様に
支払方法に注釈をつけるカスタマイズをおこなっています。

最初はちゃんと表示されるのですが、
支払方法の上にある配送方法のラジオボタンをチェックし直すと
注釈部分のみ表示されなくなってしまいます。

実際に出力されたhtmlを見てみたところ、
<label for="pay_<!--{$smarty.section.cnt.iteration}-->"><!--{$arrPayment[cnt].payment_method}--><br />
<!--{$arrPayment[cnt].note != ""}--></label>

チェックし直すことで「pay_」の数値が2から1に変わっていました。
2だと表示されていて、1の時は表示されません。

テンプレートは、
data\Smarty\templates\default\shopping\payment.tplで、
該当箇所は以下のとおりです。
<script type="text/javascript">//<![CDATA[
$(function() { 
if ($('input[name=deliv_id]:checked').val() 
|| $('#deliv_id').val()) { 
showForm(true); 
} else { 
showForm(false); 
} 
$('input[id^=deliv_]').click(function() { 
showForm(true); 
var data = {}; 
data.mode = 'select_deliv'; 
data.deliv_id = $(this).val(); 
data['<!--{$smarty.const.TRANSACTION_ID_NAME}-->'] = '<!--{$transactionid}-->'; 
$.ajax({ 
type : 'POST', 
url : location.pathname, 
data: data, 
cache : false, 
dataType : 'json', 
error : remoteException, 
success : function(data, dataType) { 
if (data.error) { remoteException(); 
} else { 
// 支払い方法の行を生成 
var payment_tbody = $('#payment tbody'); 
payment_tbody.empty(); 
for (var i in data.arrPayment) { 
// ラジオボタン 
<!--{* IE7未満対応のため name と id をベタ書きする *}--> 
var radio = $('<input type="radio" name="payment_id" id="pay_' + i + '" />') 
.val(data.arrPayment[i].payment_id); 
// ラベル 
var label = $('<label />') 
.attr('for', 'pay_' + i) 
.text(data.arrPayment[i].payment_method); 
// 行 
var tr = $('<tr />') 
.append($('<td />') 
.addClass('alignC') 
.append(radio)) 
.append($('<td />').append(label)); 
// 支払方法の画像が登録されている場合は表示 
if (data.img_show) { 
var payment_image = data.arrPayment[i].payment_image; 
$('th#payment_method').attr('colspan', 3); 
if (payment_image) { 
var img = $('<img />').attr('src', '<!--{$smarty.const.IMAGE_SAVE_URLPATH}-->' + payment_image); 
tr.append($('<td />').append(img)); } else { tr.append($('<td />')); } 
} else { 
$('th#payment_method').attr('colspan', 2); 
} 
tr.appendTo(payment_tbody); 
} 
// お届け時間を生成 
var deliv_time_id_select = $('select[id^=deliv_time_id]'); 
deliv_time_id_select.empty(); 
deliv_time_id_select.append($('<option />').text('指定なし').val('')); 
for (var i in data.arrDelivTime) { 
var option = $('<option />') 
.val(i) 
.text(data.arrDelivTime[i]) 
.appendTo(deliv_time_id_select); 
} 
} 
} 
}); 
}); 

/**
 * 通信エラー表示. 
*/ 
function remoteException(XMLHttpRequest, textStatus, errorThrown) { 
alert('通信中にエラーが発生しました。カート画面に移動します。'); 
location.href = '<!--{$smarty.const.CART_URL}-->'; 
}
 
/** 
* 配送方法の選択状態により表示を切り替える 
*/ 
function showForm(show) { 
if (show) { 
$('#payment, div.delivdate, .select-msg').show(); 
$('.non-select-msg').hide(); 
} else { 
$('#payment, div.delivdate, .select-msg').hide(); 
$('.non-select-msg').show(); 
} 
} 
}); 
//]]></script> 

<div id="undercolumn"> 
<div id="undercolumn_shopping"> 
<p class="flow_area"><img src="<!--{$TPL_URLPATH}-->img/picture/img_flow_02.jpg" alt="購入手続きの流れ" /></p>
<h2 class="title"><!--{$tpl_title|h}--></h2> 
<form name="form1" id="form1" method="post" action="?"> 
<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" /> 
<input type="hidden" name="mode" value="confirm" /> 
<input type="hidden" name="uniqid" value="<!--{$tpl_uniqid}-->" /> 
<!--{assign var=key value="deliv_id"}--> <!--{if $is_single_deliv}--> 
<input type="hidden" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|h}-->" id="deliv_id" /> 
<!--{else}--> 
<div class="pay_area"> 
<h3>配送方法の指定</h3> 
<p>配送方法をご選択ください。</p> 
<!--{if $arrErr[$key] != ""}--> 
<p class="attention"><!--{$arrErr[$key]}--></p> 
<!--{/if}--> 
<table summary="配送方法選択"> 
<col width="20%" /> 
<col width="80%" /> 
<tr> 
<th class="alignC">選択</th> 
<th class="alignC" colspan="2">配送方法</th> 
</tr> 
<!--{section name=cnt loop=$arrDeliv}--> 
<tr> 
<td class="alignC">
<input type="radio" id="deliv_<!--{$smarty.section.cnt.iteration}-->" name="<!--{$key}-->" 
value="<!--{$arrDeliv[cnt].deliv_id}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" 
<!--{$arrDeliv[cnt].deliv_id|sfGetChecked:$arrForm[$key].value}--> />
</td> 
<td>
<label for="deliv_<!--{$smarty.section.cnt.iteration}-->"><!--{$arrDeliv[cnt].name|h}-->
<!--{if $arrDeliv[cnt].remark != ""}--><p><!--{$arrDeliv[cnt].remark|h|nl2br}--></p><!--{/if}--></label> </td> 
</tr> 
<!--{/section}--> 
</table> 
</div> 
<!--{/if}--> 
<div class="pay_area"> 
<h3>お支払方法の指定</h3> 
<p class="select-msg">お支払方法をご選択ください。</p> 
<p class="non-select-msg">まずはじめに、配送方法を選択ください。</p> 
<!--{assign var=key value="payment_id"}--> 
<!--{if $arrErr[$key] != ""}--> 
<p class="attention"><!--{$arrErr[$key]}--></p> 
<!--{/if}--> 
<table summary="お支払方法選択" id="payment"> 
<col width="20%" /> 
<col width="80%" /> 
<thead> 
<tr> 
<th class="alignC">選択</th> 
<th class="alignC" colspan="<!--{if !$img_show}-->2<!--{else}-->3<!--{/if}-->" id="payment_method">お支払方法</th> 
</tr> 
</thead> 
<tbody> 
<!--{section name=cnt loop=$arrPayment}--> 
<tr> 
<td class="alignC">
<input type="radio" id="pay_<!--{$smarty.section.cnt.iteration}-->" 
name="<!--{$key}-->" value="<!--{$arrPayment[cnt].payment_id}-->" 
style="<!--{$arrErr[$key]|sfGetErrorColor}-->" 
<!--{$arrPayment[cnt].payment_id|sfGetChecked:$arrForm[$key].value}--> /></td> 
<td>
<label for="pay_<!--{$smarty.section.cnt.iteration}-->">
<!--{$arrPayment[cnt].payment_method}--><br />
<!--{$arrPayment[cnt].note != ""}--></label>
</td> 
<!--{if $img_show}--> 
<td>
<!--{if $arrPayment[cnt].payment_image != ""}-->
<img src="<!--{$smarty.const.IMAGE_SAVE_URLPATH}-->
<!--{$arrPayment[cnt].payment_image}-->" />
<!--{/if}-->
</td> 
<!--{/if}--> 
</tr> 
<!--{/section}--> 
</tbody> 
</table> 
</div>


「pay_」の数値が変わってしまうことで表示されないのだと思うのですが、
なぜチェックし直すことで変わってしまうのか、
この数値はpayment_idでもないようですし、どこから振られているのかわからず
ご存知の方がいましたらご教示いただけないでしょうか?

どうぞよろしくお願いいたします
karin
投稿日時: 2018/8/29 14:17
対応状況: −−−
仙人
登録日: 2008/9/15
居住地: 東京都
投稿: 656
Re: お支払い方法にコメントを表示させたい
配送方法を選択すると注釈部分が消えるのは、payment.tpl上部のJavaScriptの処理で配送方法が書き換えられるからです。
(「pay_」の数値が変わることが原因ではない。)

JavaScript部分の処理に注釈を取得・出力する処理を加えてみてください。


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

doux
投稿日時: 2018/8/29 23:44
対応状況: −−−
半人前
登録日: 2017/2/16
居住地:
投稿: 15
Re: お支払い方法にコメントを表示させたい
ご返信ありがとうございます。
ちょっとやってみましたが、当方の力量不足なのか思うように動作しませんでした。もう少し勉強して試してみます。ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は40,691名です
総投稿数は90,062件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1878
4
468
1573
5
yuh
1570
6
red
1213
7
umebius
1091
8
fukap
907
9
tsuji
837
10
shutta
827
11 ramrun 789
12
tao_s
691
13 karin 656
14
h_tanaka
651
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© LOCKON CO.,LTD. All Rights Reserved.