- ベストアンサー
配列の受け取り方について
value="<?php echo addslashes(implode((array) $_POST['jyusyo'],",")); ?>"> タイトルのように受け取ったら "豊岡市,養父市" のようになってしまいます。 "豊岡市","養父市" のようにしたいんですが、どう変更したら良いですか??
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
value="<?php ...?>"> ということは、selectタグの複数選択で受け取った値を、<input type="hidden" で、次の画面に引き継ぐと言うことですかね?もしそうであれば、かなり違います。 <input type="hidden" name="jyusyo[]" value="豊岡市"> <input type="hidden" name="jyusyo[]" value="養父市"> のようなタグを出力する必要があります。こうすると、次も$_POST['jyusyo']に配列でデータが入ります。 <?php foreach($_POST['jyusyo'] as $jyusyo){?> <input type="hidden" name="jyusyo[]" value="<?php echo htmlspecialchars($jyusyo,ENT_QUOTES,'utf-8');?>"> <?php } ?> [重要] 変数や式の値をhtmlの一部として出力する場合は、必ずhtmlspecialchars関数を使います。addslashesを使うのは間違いです。何か変な参考書を読んだのでしょうが、その本は捨てましょう。'utf-8'の部分は、出力するhtmlページの文字コード指定(content-typeのcharset)に合わせてください。
その他の回答 (1)
- t_ohta
- ベストアンサー率38% (5238/13705)
<?php foreach ($_POST['jyusyo'] as $key =>$value) { $_POST['jyusyo'][$key] = '"'.$value.'"'; } echo addslashes(implode((array) $_POST['jyusyo'],",")); ?>
お礼
貴方の回答で無事できました!!大変助かりました!!ありがとう御座います!