質問 > その他 > チェックボックスのデータ引継ぎ |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
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をチェックボックス毎に変えましょう
|
pineray |
投稿日時: 2009/10/20 14:42
対応状況: −−−
|
長老 ![]() ![]() 登録日: 2006/9/9 居住地: 伊賀 投稿: 292 |
Re: チェックボックスのデータ引継ぎ name属性に「[]」をつけることで、配列として取得できるようになります。
|
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側も変更しなくてはならないと思うのですが、
データを引き継ぐ、とは具体的にどのような動作を期待されていますか?
|
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: チェックボックスのデータ引継ぎ テンプレートファイルだけに関して言えば、入力画面のソースを以下のようにして、
【チェックボックスソース】
確認画面の該当部分を以下のようにし、 【確認画面ソース】
同じく確認画面の<form>タグの内側に以下の記述を追加すると、動作するのではないでしょうか。
|
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() のある箇所それぞれを、以下のようにしてみればいかがでしょうか?
|
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 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |