プロが教える店舗&オフィスのセキュリティ対策術

以前こちらでも質問をさせて頂き、無事に解決をしたと思ったのですが、
どうにでもできないことが有りましたのでご質問をさせて頂きました。

チェックボックスを使用し、複数選択された項目を
次のページに受け渡す時
例えば
-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に戻す場合、チェックボックスで予め選択された項目を
保持したまま戻ることはできるのでしょうか?
どなたかお分かりになるかたがいましたらご教授お願いできないでしょうか。宜しくお願い致します。

A 回答 (4件)

print文が抜けているとかはないですか?


(たぶん ないとは思いますが)

一応サンプルとして作ってみました。
1ページ処理しているので、ご自身で分割するとかしてください。

参考URL:http://www.n-athome.com/sample.txt

この回答への補足

返信が遅くなってしまい申し訳ございません。
こちらで頂きましたサンプルを確認させて頂きました。
表示については無事にできることができました!どうもありがとうございます。
ただどうしても項目を保持したまま前のページに戻すことができません。
formタグの中にこのような記述だけではやりえい無理なのでしょうか?
<input type="hidden" name="sejyutu" value="<?php echo $str_sejyutu; ?>">

補足日時:2007/06/17 23:21
    • good
    • 0

<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側にそれを表示する
ソースを書いておけばよいでしょう。

この回答への補足

ご返答ありがとうございます。
表示については無事に解決することが出来ました。
ただし、その
form.phpにパラメータをわたして、form側にそれを表示する
についてはもう少し詳しくお伺いできないでしょうか?
宜しくお願い致します。

補足日時:2007/06/17 23:24
    • good
    • 0

>表示については無事にできることができました!どうもありがとうございます。


>ただどうしても項目を保持したまま前のページに戻すことができません。

PHPのバージョンはいくつですか?
一応PHP4.3以上なら確認できているのですが。

それとご自身で作成されたスクリプトを省略せずに載せるか
参考URLに載せてもらえませんか?

>formタグの中にこのような記述だけではやりえい無理なのでしょうか?
><input type="hidden" name="sejyutu" value="<?php echo $str_sejyutu; ?>">
この方法でもできなくはないですが文字列の分解とか検証処理が増えると思うのですが・・・
    • good
    • 0

#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;
?>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!