Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как передать массив через POST
Форумы портала PHP.SU » PHP » Программирование на PHP » Как передать массив через POST

Страниц (1): [1]
 

1. I_CaR - 22 Апреля, 2011 - 05:11:18 - перейти к сообщению
Доброго всем!
Делаю отправку письма всё работает нормально, но вот передать данные из FOR не могу.
PHP:
скопировать код в буфер обмена
  1.  
  2. <form>
  3. <input type='hidden' name='$pole_00_name' value='$pole_00[Name]'>
  4. <input type='submit' name='button_send' value='Написать письмо'>
  5. </form>
  6. <?PHP
  7. foreach ($a->Contents as $row_order)
  8.         {
  9.                                        
  10.         echo "  <tr align='center'>
  11.         <td width = '120'>$pole_00[Name] </td>
  12.         </tr>";                                
  13.         }
  14. ?>
  15.  

Вот как мне передать через POST эти значения $pole_00[Name]?
передаётся естественно, только последнее значение
Принимаю в другом php-файле через
PHP:
скопировать код в буфер обмена
  1.  
  2. $pole_00_name = (@$_POST["pole_00_name"]);
  3.  
2. EuGen - 22 Апреля, 2011 - 07:46:08 - перейти к сообщению
Используйте []
Тогда предастся правильно. Например, $pole00[name][]
3. I_CaR - 22 Апреля, 2011 - 11:26:39 - перейти к сообщению
Передал вот так (Пример.)
PHP:
скопировать код в буфер обмена
  1. @$tab_strok = 5;
  2. $input_array2 = array('1a', '2b', '3c', '4d', '5e');
  3. for ($i =0; $i < @$tab_strok; $i++)
  4. {
  5. print "<input type='text' name='$input_array2[$i]' value='$input_array2[$i]'>";
  6. }

Буду теперь думать как создать массив из for'а
4. Viper - 22 Апреля, 2011 - 11:38:45 - перейти к сообщению
I_CaR в вашем случае есть несколько замечаний. @ перед $tab_strok для чего? Мух отгонять?

Для передачи массива желательно использовать ассоциативный массив, т.к. использовать значение как имя поля нежелательно.

Т.е. имхо лучше так
PHP:
скопировать код в буфер обмена
  1. $tab_strok = 5;
  2. $input_array2 = array('a'=>'1a', 'b'=>'2b', 'c'=>'3c', 'd'=>'4d', 'e'=>'5e');
  3. for ($i =0; $i < $tab_strok; $i++) {
  4.         foreach ($input_array2 as $key=>$value) {
  5.                 echo '<input type="text" name="'.$key.'" value="'.$value.'" />';
  6.         }
  7. }
5. I_CaR - 25 Апреля, 2011 - 05:52:25 - перейти к сообщению
Viper пишет:
I_CaR в вашем случае есть несколько замечаний. @ перед $tab_strok для чего? Мух отгонять?

Для передачи массива желательно использовать ассоциативный массив, т.к. использовать значение как имя поля нежелательно.

Т.е. имхо лучше так
PHP:
скопировать код в буфер обмена
  1. $tab_strok = 5;
  2. $input_array2 = array('a'=>'1a', 'b'=>'2b', 'c'=>'3c', 'd'=>'4d', 'e'=>'5e');
  3. for ($i =0; $i < $tab_strok; $i++) {
  4.         foreach ($input_array2 as $key=>$value) {
  5.                 echo '<input type="text" name="'.$key.'" value="'.$value.'" />';
  6.         }
  7. }


У меня массив многомерный, я думал по указанному примеру получиться...
У меня он вот так заполняется в input'ы
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach ($shop->CartContents as $row_order)
  3. {
  4.  
  5.  $result .= "
  6. <input type='hidden' name='row_order_ID_$row_order[ItemID]' value='$row_order[ItemID]'>
  7. <input type='hidden' name='row_order_name_$row_order[ItemID]' value='$row_order[Name]'>
  8. <input type='hidden' name='row_order_price_$row_order[ItemID]' value='$row_order[ItemPriceF]'>
  9. <input type='hidden' name='row_order_qty_$row_order[ItemID]' value='$row_order[Qty]'>
  10. <input type='hidden' name='row_order_units_$row_order[ItemID]' value='$row_order[Units]'>
  11. <input type='hidden' name='row_order_total_price_$row_order[ItemID]' value='$row_order[TotalPriceF]'>
  12.  
  13. ";
  14. }
  15.  


И приходит от Post следующим форматом
Array:
(
[row_order_ID_T0001250] => T0001250 //это ID
[row_order_name_T0001250] => Наименование 1
[row_order_price_T0001250] => 1,00 руб
[row_order_qty_T0001250] => 2
[row_order_units_T0001250] => шт
[row_order_total_price_T0001250] => 2,00 руб // это итого, если взято более 1 шт.
[row_order_ID_T0001857] => T0001857
[row_order_name_T0001857] => Наименование 2
[row_order_price_T0001857] => 10,00 руб
[row_order_qty_T0001857] => 1
[row_order_units_T0001857] => шт
[row_order_total_price_T0001857] => 10,00 руб
[row_order_ID_T0001477] => T0001477
[row_order_name_T0001477] => Наименование 3
[row_order_price_T0001477] => 100,00 руб
[row_order_qty_T0001477] => 1
[row_order_units_T0001477] => шт
[row_order_total_price_T0001477] => 100,00 руб
[email] => vasya@pupkin.ru
[ContName] => Vasiliy
[button_send] => Написать письмо
)


Одни значения могу получить через:

PHP:
скопировать код в буфер обмена
  1. foreach (@$_POST as $value)
  2. {
  3. echo "<b>$value</b><br>";
  4. }
  5.  


А Как мне из этого принятого массива или полученных через foreach значений выбрать значения по пунктам? Ведь ID всегда разный.
Например именно 4-ую строку массива из foreach?
ну или на крайний случай хоть 4-ую строку из массива из POST?
(Добавление)
Методом научного тыка, дошёл до того (ну и подумал), что этот массив из foreach, нужно засунуть в свой массив, и там через индексы строк уже выводить, то что нужно. Я правильно мыслю? ??? Непонял!
6. Viper - 25 Апреля, 2011 - 11:30:03 - перейти к сообщению
I_CaR id у вас же не рандомно генерируется, а значит есть откуда его взять.

 

Powered by ExBB FM 1.0 RC1