• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:送信した配列の取得方法)

formで送信した配列データを受け取る方法

このQ&Aのポイント
  • formで送信した配列データを取得するためには、受信側のPHPコードを適切に記述する必要があります。
  • 受信側では、$_POST変数を使用してデータを取得し、適切な処理を行うことで配列データを受け取ることができます。
  • 送信側では、input要素のname属性に配列の添字を指定し、value属性に送信するデータを出力することで、配列データを送信することができます。

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

  • ベストアンサー
回答No.2

$prmarray_post["test_data[".$i."]"] の部分に関しては、 $prmarray_post["test_data"][$i] で参照できます。 HTML中の記述については問題ありません。

qkyorochan
質問者

お礼

ありがとうございます! 助かりましたm(__)m

その他の回答 (1)

回答No.1

PHPは、 <input type="text" name="foo[bar]" /> などといったname値がPOSTされた場合、配列に展開されてしまいます。 その為、これにアクセスするためには、 $_POST['foo']['bar']; としなければなりません。 なので、cnv_formstr関数に関しては再起処理を行う必要があります。 function cnv_formstr($array1) { foreach($array1 as $k => $v){ if(is_array($v)){ $array1[$k] = cnv_formstr($v); }else{ if (get_magic_quotes_gpc()) { $v = stripslashes($v); } $v = htmlspecialchars($v,ENT_QUOTES); $array1[$k]=$v; } } return $array1; } こんな感じで。

qkyorochan
質問者

補足

ご回答ありがとうございます。 たびたびすみません。 教えて頂いたfonctionで実行してみました。 取得部分の記述はどのようになるのでしょうか? $prmarray_post = cnv_formstr($_POST); $data_cnt = isset($prmarray_post["data_cnt"]) ? $prmarray_post["data_cnt"] : ""; for ($i = 0; $i < $data_cnt; $i++) { $test_data[$i] = isset($prmarray_post["test_data[".$i."]"]) ? $prmarray_post["test_data[".$i."]"] : ""; } とした場合、$data_cntは取れているのですが、$test_data[$i]がうまく取れません(;_;) 送信部分の配列の記述も <input type="hidden" name="test_data[<?=$i?>]" value="<?=$test_data[$i]?>"> で問題ないでしょうか?

専門家に質問してみよう