- ベストアンサー
チェックボックスの受け渡し
以前こちらでも質問をさせて頂き、無事に解決をしたと思ったのですが、 どうにでもできないことが有りましたのでご質問をさせて頂きました。 チェックボックスを使用し、複数選択された項目を 次のページに受け渡す時 例えば -form.php- <span class="checkbox"><input name="sejyutu[]" type="checkbox" value="aaa" />aaa</span> <span class="checkbox"><input name="sejyutu[]" type="checkbox" value="bbb" />bbb</span> -kakunin.php- $sejyutu = $_POST['sejyutu']; if(isset($sejyutu) and count($sejyutu)>0){ $str_sejyutu = ""; for($i=0;$i<count($sejyutu);$i++){ if($i == 0){ $str_sejyutu .= $sejyutu[$i]; } else{ $str_sejyutu .= " " . $sejyutu[$i]; } } } ?> という形でやっているのですが、kakunin.phpで表示がされません。 foreach分も使ってみたのですが、それでもまた表示がされません。 あともう一点あるのですが、例えば form.phpからkakunin.phpに情報を飛ばし、またその情報を修正のために form.phpに戻す場合、チェックボックスで予め選択された項目を 保持したまま戻ることはできるのでしょうか? どなたかお分かりになるかたがいましたらご教授お願いできないでしょうか。宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 たとえばこんな感じで ・form.php <?PHP $sejyutu=$_REQUEST['sejyutu']; foreach($sejyutu as $val){ $checked["sejyutu"][$val]=" checked"; } print <<<eof <form action="kakunin.php" method="post"> <span class="checkbox"><input name="sejyutu[]" type="checkbox" value="aaa"{$checked['sejyutu']['aaa']} />aaa</span> <span class="checkbox"><input name="sejyutu[]" type="checkbox" value="bbb"{$checked['sejyutu']['bbb']} />bbb</span> <span class="checkbox"><input name="sejyutu[]" type="checkbox" value="ccc"{$checked['sejyutu']['ccc']} />ccc</span> <span class="checkbox"><input name="sejyutu[]" type="checkbox" value="ddd"{$checked['sejyutu']['ddd']} />ddd</span> <input type="submit"> </form> eof; ?> ・kakunin.php <?PHP $sejyutu=$_REQUEST['sejyutu']; if(is_array($sejyutu)) foreach($sejyutu as $val){ $str_sejyutu .= ($str_sejyutu==""?"":" ").$val; $vars.=($vars==""?"?":"&").urlencode("sejyutu[]")."=".urlencode($val); } print <<<eof {$str_sejyutu}<br> [ <a href="form.php{$vars}">戻る</a> ] eof; ?>
その他の回答 (3)
- wish46
- ベストアンサー率78% (29/37)
>表示については無事にできることができました!どうもありがとうございます。 >ただどうしても項目を保持したまま前のページに戻すことができません。 PHPのバージョンはいくつですか? 一応PHP4.3以上なら確認できているのですが。 それとご自身で作成されたスクリプトを省略せずに載せるか 参考URLに載せてもらえませんか? >formタグの中にこのような記述だけではやりえい無理なのでしょうか? ><input type="hidden" name="sejyutu" value="<?php echo $str_sejyutu; ?>"> この方法でもできなくはないですが文字列の分解とか検証処理が増えると思うのですが・・・
- yambejp
- ベストアンサー率51% (3827/7415)
<form action="kakunin.php" method="post"> <span class="checkbox"><input name="sejyutu[]" type="checkbox" value="aaa" />aaa</span> <span class="checkbox"><input name="sejyutu[]" type="checkbox" value="bbb" />bbb</span> <input type="submit"> </form> ときちんとpostを指定していますか? formから送るときにGETになっているというおちでは? >もう1点 form.phpにパラメータをわたして、form側にそれを表示する ソースを書いておけばよいでしょう。
- wish46
- ベストアンサー率78% (29/37)
print文が抜けているとかはないですか? (たぶん ないとは思いますが) 一応サンプルとして作ってみました。 1ページ処理しているので、ご自身で分割するとかしてください。
補足
返信が遅くなってしまい申し訳ございません。 こちらで頂きましたサンプルを確認させて頂きました。 表示については無事にできることができました!どうもありがとうございます。 ただどうしても項目を保持したまま前のページに戻すことができません。 formタグの中にこのような記述だけではやりえい無理なのでしょうか? <input type="hidden" name="sejyutu" value="<?php echo $str_sejyutu; ?>">
補足
ご返答ありがとうございます。 表示については無事に解決することが出来ました。 ただし、その form.phpにパラメータをわたして、form側にそれを表示する についてはもう少し詳しくお伺いできないでしょうか? 宜しくお願い致します。