У меня есть динамическая форма, в которой я могу добавить и удалить textarea. Название текстовых полей – MyTextarea []
<textarea style="display:inline;" name="MyTextarea[]"></textarea> <textarea style="display:inline;" name="MyTextarea[]"></textarea>
Поэтому, когда я хочу обработать это текстовое поле с помощью PHP, я делаю:
echo $_POST['MyTextarea'];
Таким образом, на экране отображается Array
, до сих пор это нормально
Поэтому я делаю print_r($_POST['MyTextarea']);
и у меня опять тот же результат: Array
Я хочу знать, возможно ли иметь много textarea с тем же именем с []
для создания массива.
Если возможно, как я могу это сделать, или что не так с моим кодом.
благодаря
Какую структуру вы используете, я вполне уверен, что в какой-то момент есть что-то вроде того, что вы массивы в строку, возможно, что-то, что применимо к переменной POST, например:
foreach ($_POST as $key => $value) { if ($value && !$is_magic_quotes_gpc) { $_POST["$key"] = addslashes($value); }
В этом случае вы должны удалить эту функцию … Чтобы быть уверенным в том, что я говорю, вы можете попробовать var_dump ($ POST [MyTextarea]) => string 'Array' (length = 5) (должно быть массив)
Да, в php, если у вас есть поле ввода с таким именем, как это, «MyTextarea []» отправляется как массив.
Поэтому, если вы хотите получить доступ к своим данным, вам нужно сделать следующее:
echo $_POST['MyTextarea'][0];
Если у вас несколько текстовых полей с тем же именем, вы получите массив, в котором каждый индекс имеет одно текстовое поле. Первая текстовая область в форме – это первая текстовая область в массиве
вы могли бы сделать
foreach ($_POST['MyTextarea'] as $textarea){ //do wat you need }
Это, очевидно, функция убийцы для использования, если вам нужно добавить несколько текстовых полей динамически.