• ベストアンサー

配列の受け取り方について

value="<?php echo addslashes(implode((array) $_POST['jyusyo'],",")); ?>"> タイトルのように受け取ったら "豊岡市,養父市" のようになってしまいます。 "豊岡市","養父市" のようにしたいんですが、どう変更したら良いですか??

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

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)に合わせてください。

noname#142312
質問者

お礼

貴方の回答で無事できました!!大変助かりました!!ありがとう御座います!

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

<?php foreach ($_POST['jyusyo'] as $key =>$value) { $_POST['jyusyo'][$key] = '"'.$value.'"'; } echo addslashes(implode((array) $_POST['jyusyo'],",")); ?>

関連するQ&A