バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > その他 > チェックボックスのデータ引継ぎ

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
it3
投稿日時: 2009/10/20 14:32
対応状況: −−−
一人前
登録日: 2009/3/16
居住地:
投稿: 94
チェックボックスのデータ引継ぎ
こんにちは。

チェックボックスについて教えて下さい。
会員登録時などに、複数選択可能なチェックボックスを
追加したいのですが、どうもうまく行きません。

まずは、ラジオボタンでやってみたらうまく行ったので、
それを元にチェックボックス式にしてみたのですが、
ラジオボタンのように、選択したものの1つしかデータが
引き継がれません。
アレコレ調べたりしながら試していますが、なかなか先に
進みません。(TT)

複数チェックを行ったもの全てのデータを引き継ぐには
どのようにしたら良いでしょうか?
どなたか、ご存知でないでしょうか?


------------------------------------------------------
【ラジオボタンソース】
<!--{assign var=key1 value="`$prefix`question01"}-->
<label><input type="radio" name="<!--{$key1}-->" id="q03_1" value="1" <!--{if $arrForm[$key1] eq 1}--> checked="checked" <!--{/if}--> />AAA</label>

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


-------------------------------------------------------
【チェックボックスソース】
<label><input type="checkbox" name="question02" value="1" <!--{if $arrForm.question02 == 1}--> checked="checked" <!--{/if}--> />あああ</label><br>

<label><input type="checkbox" name="question02" value="2" <!--{if $arrForm.question02 == 2}--> checked="checked" <!--{/if}--> />いいい</label><br>

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


********************************
EC-CUBEバージョン 2.3.4
PHPバージョン    PHP 5.2.6
AMUAMU
投稿日時: 2009/10/20 14:35
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: チェックボックスのデータ引継ぎ
inputタグ内のnameをチェックボックス毎に変えましょう


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

pineray
投稿日時: 2009/10/20 14:42
対応状況: −−−
長老
登録日: 2006/9/9
居住地: 伊賀
投稿: 292
Re: チェックボックスのデータ引継ぎ
name属性に「[]」をつけることで、配列として取得できるようになります。
-------------------------------------------------------
【チェックボックスソース】
<label><input type="checkbox" name="question02[]" value="1" <!--{if $arrForm.question02 == 1}--> checked="checked" <!--{/if}--> />あああ</label><br>

<label><input type="checkbox" name="question02[]" value="2" <!--{if $arrForm.question02 == 2}--> checked="checked" <!--{/if}--> />いいい</label><br>
…
-------------------------------------------------------


----------------
EC-CUBEのプラグインを公開しています!
いつも reCAPTCHA

it3
投稿日時: 2009/10/20 15:15
対応状況: −−−
一人前
登録日: 2009/3/16
居住地:
投稿: 94
Re: チェックボックスのデータ引継ぎ
AMUAMUさん、pinerayさん
早速ありがとうございます。

nameをそれぞれ変えたパターンと、
name="question02[]"と変えたパターンを
行ってみましたが、共にデータが1つも
引き継がれなくなってしまいました。。。

今修正中のファイルは、form_personal_input.tpl ですが、
テンプレート以外での問題でしょうか。。。
pineray
投稿日時: 2009/10/20 15:25
対応状況: −−−
長老
登録日: 2006/9/9
居住地: 伊賀
投稿: 292
Re: チェックボックスのデータ引継ぎ
そうですね、PHP側も変更しなくてはならないと思うのですが、
データを引き継ぐ、とは具体的にどのような動作を期待されていますか?


----------------
EC-CUBEのプラグインを公開しています!
いつも reCAPTCHA

it3
投稿日時: 2009/10/20 15:41
対応状況: −−−
一人前
登録日: 2009/3/16
居住地:
投稿: 94
Re: チェックボックスのデータ引継ぎ
pinerayさんありがとうございます。


>データを引き継ぐ、とは具体的にどのような動作を期待されていますか?

一応、次のページへの引継ぎです。
具体的には入力(チェック)後に
確認ページでの確認が出来るようにする事です。。
また、ページを戻った際には、
チェックした項目にチェックが入っているようにしたいです。。

確認ページでは、性別等のラジオボタン同様
チェックされた項目がテキスト表示されるというイメージです。


先程、nameを"question02[]"として、
<!--{$arrForm.question02|@var_dump}-->
これでダンプしてみました。

すると、データはちゃんと取得はされている様なんですよね。。。
(チェックを1番目、4番目、11番目にした場合)
array(3) { [0]=> string(1) "1" [1]=> string(1) "4" [2]=> string(2) "11" }


pineray
投稿日時: 2009/10/20 16:09
対応状況: −−−
長老
登録日: 2006/9/9
居住地: 伊賀
投稿: 292
Re: チェックボックスのデータ引継ぎ
テンプレートファイルだけに関して言えば、入力画面のソースを以下のようにして、

【チェックボックスソース】
<label><input type="checkbox" name="question02[]" value="1" <!--{if in_array('1',$arrForm.question02)}--> checked="checked" <!--{/if}--> />あああ</label><br />
<label><input type="checkbox" name="question02[]" value="2" <!--{if in_array('2',$arrForm.question02)}--> checked="checked" <!--{/if}--> />いいい</label><br />
…


確認画面の該当部分を以下のようにし、

【確認画面ソース】
<!--{if in_array('1',$arrForm.question02)}-->あああ<br /><!--{/if}-->
<!--{if in_array('2',$arrForm.question02)}-->いいい<br /><!--{/if}-->
…


同じく確認画面の<form>タグの内側に以下の記述を追加すると、動作するのではないでしょうか。

<!--{foreach from=$arrForm.question02 item=val}-->
<input type="hidden" name="question02[]" value="$val" />
<!--{/foreach}-->


----------------
EC-CUBEのプラグインを公開しています!
いつも reCAPTCHA

it3
投稿日時: 2009/10/20 16:38
対応状況: −−−
一人前
登録日: 2009/3/16
居住地:
投稿: 94
Re: チェックボックスのデータ引継ぎ
pinerayさん、丁寧にご教授頂いて
ありがとうございます。m(_ _)m

早速試してみました。
チェックボックスへチェックを入れた際、
問題なくデータも引き継がれページを戻った際も
チェックがつくようになりました。
ですが、チェックを入れてない時は↓のようなエラーが
チェック項目ごとに表示されてしまいます。
Warning: in_array() [function.in-array]: Wrong datatype for second argument in ・・・・・

このエラー回避方法はどうしたら良いでしょうか?
pineray
投稿日時: 2009/10/20 16:52
対応状況: −−−
長老
登録日: 2006/9/9
居住地: 伊賀
投稿: 292
Re: チェックボックスのデータ引継ぎ
ちょっとべたな書き方ですが、in_array() のある箇所それぞれを、以下のようにしてみればいかがでしょうか?
<!--{if $arrForm.question02 != '' && in_array('1',$arrForm.question02)}-->


----------------
EC-CUBEのプラグインを公開しています!
いつも reCAPTCHA

it3
投稿日時: 2009/10/20 17:39
対応状況: −−−
一人前
登録日: 2009/3/16
居住地:
投稿: 94
Re: チェックボックスのデータ引継ぎ
pinerayさん、ありがとうございます。
お陰様で回避できました。m(_ _)m

ですが、チェックボックスになったことで、
LC_Page_Entry.phpでエラーが出るようになってしまいました。。。
型が合わないのかなと想像するのですが、どう触ってよいのか。。。
お手数ですが、ご教授いただけないでしょうか?

【LC_Page_Entry.php】
======================================================
//---- 登録用カラム配列
$arrRegistColumn = array(
    …
    ↓追加
    array( "column" => "question02", "convert" => "n" ),


すると、データ入力ページで↓のエラーが出てしまいます。
----------------------------------------------------------
Warning: mb_convert_kana() expects parameter 1 to be string, array given in … /LC_Page_Entry.php on line 695
----------------------------------------------------------


この695行にあたるコードが、↓の $array[$key] = mb_convert_kana($array[$key] ,$val);にあたる所です。
---------------------------------------------------------
//---- 取得文字列の変換
function lfConvertParam($array, $arrRegistColumn) {
/*
* 文字列の変換
* K : 「半角(ハンカク)片仮名」を「全角片仮名」に変換
* C : 「全角ひら仮名」を「全角かた仮名」に変換
* V : 濁点付きの文字を一文字に変換。"K","H"と共に使用します
* n : 「全角」数字を「半角(ハンカク)」に変換
* a : 全角英数字を半角英数字に変換する
*/
// カラム名とコンバート情報
foreach ($arrRegistColumn as $data) {
$arrConvList[ $data["column"] ] = $data["convert"];
}
// 文字変換
foreach ($arrConvList as $key => $val) {
// POSTされてきた値のみ変換する。
if(isset($array[$key]) && strlen($array[$key]) > 0) {
$array[$key] = mb_convert_kana($array[$key] ,$val);
}
}
return $array;
}

===========================================================

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は90,344名です
総投稿数は110,365件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1693
8
red
1571
9
mcontact
1360
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.