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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: помогите передать двухмернный масив методом $_post

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
alexey90210
Отправлено: 05 Февраля, 2011 - 18:37:26
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




возникла следующая ситуция!!
у меня масив 9Х5. и я его пытаюсь за$_POSTить используя простую форму!!
и вот не задача единственное что у меня работает это код на 90 строчек
все попытки сделать цикл $i/$j зовущий unserialize() и serialize() окончались не успехом
вот мой страшный код - помогите сделать из него канфетку

PHP:
скопировать код в буфер обмена
  1. if (isset($_POST['prod11'])) {$prod11=$_POST['prod11']; } else {$prod11=$pax;}
  2.         if (isset($_POST['prod21'])) {$prod21=$_POST['prod21']; } else {$prod21=$pax;}
  3.         if (isset($_POST['prod31'])) {$prod31=$_POST['prod31']; } else {$prod31=$pax;}
  4.         if (isset($_POST['prod41'])) {$prod41=$_POST['prod41']; } else {$prod41=$pax;}
  5.         if (isset($_POST['prod51'])) {$prod51=$_POST['prod51']; } else {$prod51=$pax;}
  6.         if (isset($_POST['prod61'])) {$prod61=$_POST['prod61']; } else {$prod61=$pax;}
  7.         if (isset($_POST['prod71'])) {$prod71=$_POST['prod71']; } else {$prod71=$pax;}
  8.         if (isset($_POST['prod81'])) {$prod81=$_POST['prod81']; } else {$prod81=$pax;}
  9.         if (isset($_POST['prod91'])) {$prod91=$_POST['prod91']; } else {$prod91=$pax;}
  10.        
  11.         if (isset($_POST['prod12'])) {$prod12=$_POST['prod12']; } else {$prod12=0;}
  12.         if (isset($_POST['prod22'])) {$prod22=$_POST['prod22']; } else {$prod22=0;}
  13.         if (isset($_POST['prod32'])) {$prod32=$_POST['prod32']; } else {$prod32=0;}
  14.         if (isset($_POST['prod42'])) {$prod42=$_POST['prod42']; } else {$prod42=0;}
  15.         if (isset($_POST['prod52'])) {$prod52=$_POST['prod52']; } else {$prod52=0;}
  16.         if (isset($_POST['prod62'])) {$prod62=$_POST['prod62']; } else {$prod62=0;}
  17.         if (isset($_POST['prod72'])) {$prod72=$_POST['prod72']; } else {$prod72=0;}
  18.         if (isset($_POST['prod82'])) {$prod82=$_POST['prod82']; } else {$prod82=0;}
  19.         if (isset($_POST['prod92'])) {$prod92=$_POST['prod92']; } else {$prod92=0;}
  20.        
  21.         if (isset($_POST['prod13'])) {$prod13=$_POST['prod13']; } else {$prod13=1;}
  22.         if (isset($_POST['prod23'])) {$prod23=$_POST['prod23']; } else {$prod23=1;}
  23.         if (isset($_POST['prod33'])) {$prod33=$_POST['prod33']; } else {$prod33=1;}
  24.         if (isset($_POST['prod43'])) {$prod43=$_POST['prod43']; } else {$prod43=2;}
  25.         if (isset($_POST['prod53'])) {$prod53=$_POST['prod53']; } else {$prod53=2;}
  26.         if (isset($_POST['prod63'])) {$prod63=$_POST['prod63']; } else {$prod63=2;}
  27.         if (isset($_POST['prod73'])) {$prod73=$_POST['prod73']; } else {$prod73=3;}
  28.         if (isset($_POST['prod83'])) {$prod83=$_POST['prod83']; } else {$prod83=3;}
  29.         if (isset($_POST['prod93'])) {$prod93=$_POST['prod93']; } else {$prod93=3;}
  30.        
  31.         if (isset($_POST['prod14'])) {$prod14=$_POST['prod14']; } else {$prod14=0;}
  32.         if (isset($_POST['prod24'])) {$prod24=$_POST['prod24']; } else {$prod24=0;}
  33.         if (isset($_POST['prod34'])) {$prod34=$_POST['prod34']; } else {$prod34=0;}
  34.         if (isset($_POST['prod44'])) {$prod44=$_POST['prod44']; } else {$prod44=0;}
  35.         if (isset($_POST['prod54'])) {$prod54=$_POST['prod54']; } else {$prod54=0;}
  36.         if (isset($_POST['prod64'])) {$prod64=$_POST['prod64']; } else {$prod64=0;}
  37.         if (isset($_POST['prod74'])) {$prod74=$_POST['prod74']; } else {$prod74=0;}
  38.         if (isset($_POST['prod84'])) {$prod84=$_POST['prod84']; } else {$prod84=0;}
  39.         if (isset($_POST['prod94'])) {$prod94=$_POST['prod94']; } else {$prod94=0;}
  40.        
  41.         if (isset($_POST['prod15'])) {$prod15=$_POST['prod15']; } else {$prod15=0;}
  42.         if (isset($_POST['prod25'])) {$prod25=$_POST['prod25']; } else {$prod25=0;}
  43.         if (isset($_POST['prod35'])) {$prod35=$_POST['prod35']; } else {$prod35=0;}
  44.         if (isset($_POST['prod45'])) {$prod45=$_POST['prod45']; } else {$prod45=0;}
  45.         if (isset($_POST['prod55'])) {$prod55=$_POST['prod55']; } else {$prod55=0;}
  46.         if (isset($_POST['prod65'])) {$prod65=$_POST['prod65']; } else {$prod65=0;}
  47.         if (isset($_POST['prod75'])) {$prod75=$_POST['prod75']; } else {$prod75=0;}
  48.         if (isset($_POST['prod85'])) {$prod85=$_POST['prod85']; } else {$prod85=0;}
  49.         if (isset($_POST['prod95'])) {$prod95=$_POST['prod95']; } else {$prod95=0;}
  50.        
  51.         $prod[1][1]=$prod11;
  52.         $prod[1][2]=$prod12;
  53.         $prod[1][3]=$prod13;
  54.         $prod[1][4]=$prod14;
  55.         $prod[1][5]=$prod15;
  56.         $prod[2][1]=$prod21;
  57.         $prod[2][2]=$prod22;
  58.         $prod[2][3]=$prod23;
  59.         $prod[2][4]=$prod24;
  60.         $prod[2][5]=$prod25;
  61.         $prod[3][1]=$prod31;
  62.         $prod[3][2]=$prod32;
  63.         $prod[3][3]=$prod33;
  64.         $prod[3][4]=$prod34;
  65.         $prod[3][5]=$prod35;
  66.         $prod[4][1]=$prod41;
  67.         $prod[4][2]=$prod42;
  68.         $prod[4][3]=$prod43;
  69.         $prod[4][4]=$prod44;
  70.         $prod[4][5]=$prod45;
  71.         $prod[5][1]=$prod51;
  72.         $prod[5][2]=$prod52;
  73.         $prod[5][3]=$prod53;
  74.         $prod[5][4]=$prod54;
  75.         $prod[5][5]=$prod55;
  76.         $prod[6][1]=$prod61;
  77.         $prod[6][2]=$prod62;
  78.         $prod[6][3]=$prod63;
  79.         $prod[6][4]=$prod64;
  80.         $prod[6][5]=$prod65;
  81.         $prod[7][1]=$prod71;
  82.         $prod[7][2]=$prod72;
  83.         $prod[7][3]=$prod73;
  84.         $prod[7][4]=$prod74;
  85.         $prod[7][5]=$prod75;
  86.         $prod[8][1]=$prod81;
  87.         $prod[8][2]=$prod82;
  88.         $prod[8][3]=$prod83;
  89.         $prod[8][4]=$prod84;
  90.         $prod[8][5]=$prod85;
  91.         $prod[9][1]=$prod91;
  92.         $prod[9][2]=$prod92;
  93.         $prod[9][3]=$prod93;
  94.         $prod[9][4]=$prod94;
  95.         $prod[9][5]=$prod95;


Отредактировано модератором: JustUserR, 06 Февраля, 2011 - 14:45:57
Обрамил PHP-код в соответствующий BB-тег
 
 Top
OrmaJever Модератор
Отправлено: 05 Февраля, 2011 - 19:00:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Логика вобще непонятная Однако А что скрипт должен делать? Переписать из пустого в порожнее?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Мелкий Супермодератор
Отправлено: 05 Февраля, 2011 - 19:01:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




PHP:
скопировать код в буфер обмена
  1. $prod = array();
  2. for ($i=0; $i<9; $i++) {
  3. $prod[$i]=array();
  4. for ($r=0;$r<5; $r++) $prod[$i][$r] = isset($_POST['prod'.$i.$r]) ? $_POST['prod'.$i.$r] : 0;
  5. }


Но передаёте вы не массив. Хотя и его можно: <input type="text" name="item[0][1]">


-----
PostgreSQL DBA
 
 Top
alexey90210
Отправлено: 05 Февраля, 2011 - 19:21:11
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




OrmaJever пишет:
Логика вобще непонятная Однако А что скрипт должен делать? Переписать из пустого в порожнее?


принять у юзера 45 данных, тексбоксами и комбобоксами..
затем сделать в них всякие вычесления и выдать ему ответ наприр "150$"
(Добавление)
Мелкий пишет:
PHP:
скопировать код в буфер обмена
  1. $prod = array();
  2. for ($i=0; $i<9; $i++) {
  3. $prod[$i]=array();
  4. for ($r=0;$r<5; $r++) $prod[$i][$r] = isset($_POST['prod'.$i.$r]) ? $_POST['prod'.$i.$r] : 0;
  5. }


Но передаёте вы не массив. Хотя и его можно: <input type="text" name="item[0][1]">



мне нравится ход вашей мысли!!!
щяс попробою осилить сие своим мальньким черепом!!
(Добавление)
Мелкий пишет:
PHP:
скопировать код в буфер обмена
  1. $prod = array();
  2. for ($i=0; $i<9; $i++) {
  3. $prod[$i]=array();
  4. for ($r=0;$r<5; $r++) $prod[$i][$r] = isset($_POST['prod'.$i.$r]) ? $_POST['prod'.$i.$r] : 0;
  5. }


Но передаёте вы не массив. Хотя и его можно: <input type="text" name="item[0][1]">




вроде всё сделал!!
$prod = array();
for ($i=1; $i<=9; $i++)
{
$prod[$i]=array();
for ($r=1;$r<=5; $r++)
{
$prod[$i][$r] = isset($_POST['prod'.$i.$r]) ? $_POST['prod'.$i.$r] : 0;
}
}

а потом в форме метода пост я сделал
echo "<form method='post'>";

echo "<table border=2>";
echo" <tr>
<td>\"Units\"</td>
<td>\"Price for 1 unit\"</td>
<td>\"Currency\"</td>
<td>\"Comision\"</td>
<td>\"Type\"</td>
<td>\"Neto for all in USD\"</td>
<td>\"Neto for all in EUR\"</td>
<td>\"Neto for all in GBP\"</td>
</tr>";

echo "<tr>";
echo"<td>";
echo "<h4><select name = \"prod[1][1]\"> <option value = \"$prod[1][1]\">$prod[1][1] % </option>";
for($i=0; $i<50; $i++)
{
echo "<option value = \"$i\">$i %</option>";
}echo "</select>";
echo"</td>";

echo"<td>";
echo"<input type=\"text\" name=\"prod[1][2]\">";

echo"</td>";
echo "</tr>";












echo "<input type=\"submit\" value=\"C A L C U L A T E\"></h3>";
echo "</form>";


и почемуто не работает.. я пологаю что тутчто то не так
echo "<h4><select name = \"prod[1][1]\">

заранее спасибо!!
 
 Top
jfr
Отправлено: 05 Февраля, 2011 - 20:15:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010  
Откуда: Таджикистан, Худжанд


Помог: 0 раз(а)

[+]


alexey90210 пишет:
принять у юзера 45 данных, тексбоксами и комбобоксами..

а случайными числами ни как нельзя Радость (генератор случайных чисел)
 
 Top
alexey90210
Отправлено: 05 Февраля, 2011 - 20:26:57
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




jfr пишет:
alexey90210 пишет:
принять у юзера 45 данных, тексбоксами и комбобоксами..

а случайными числами ни как нельзя Радость (генератор случайных чисел)


нетушки!!
некаких случайных чисел!!
 
 Top
Мелкий Супермодератор
Отправлено: 05 Февраля, 2011 - 20:27:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




alexey90210 пишет:
и почемуто не работает.. я пологаю что тутчто то не так

Ну так вы или так или так делаете. Если массив формируете в форме, тогда в $_POST[имя элемента] будет массив. Или вы передаёте толпу $_POST['prodNM'].


-----
PostgreSQL DBA
 
 Top
alexey90210
Отправлено: 05 Февраля, 2011 - 21:37:58
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Мелкий пишет:
alexey90210 пишет:
и почемуто не работает.. я пологаю что тутчто то не так

Ну так вы или так или так делаете. Если массив формируете в форме, тогда в $_POST[имя элемента] будет массив. Или вы передаёте толпу $_POST['prodNM'].


а можно пожалуйста на более конкретном примере??
а то я час пытася осмыслить то что Вы написали и всё об стенку..))
 
 Top
Мелкий Супермодератор
Отправлено: 05 Февраля, 2011 - 21:49:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Пример:
<input type="text" name="prod[1][2]"> попадёт в $_POST['prod'][1][2]
<input type="text" name="prod12"> попадёт в $_POST['prod12']
Соответственно и забирать надо соответствующим методом, но одним - или так, или так.

(Отредактировано автором: 05 Февраля, 2011 - 21:58:49)



-----
PostgreSQL DBA
 
 Top
alexey90210
Отправлено: 05 Февраля, 2011 - 21:52:10
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Мелкий пишет:
Пример:
<input type="text" name="prod[1][2]"> попадёт в $_POST[1][2]
<input type="text" name="prod12"> попадёт в $_POST['prod12']
Соответственно и забирать надо соответствующим методом, но одним - или так, или так.


пробовл сделать вот так:
и тоже мимо..

for ($i=1; $i<=9; $i++)
{
echo "<tr>";
echo"<td>";
echo "<h4><select name = \"'prod'.$i.1\"> <option value = \"$'prod'.$i.1\">$'prod'.$i.1' units</option>";
for($i=0; $i<50; $i++)
{
echo "<option value = \"$i\">$i </option>";
}echo "</select>";
echo"</td>";
 
 Top
TM123
Отправлено: 06 Февраля, 2011 - 11:24:14
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Нояб. 2010  
Откуда: Москва


Помог: 0 раз(а)




1. Ну во первых ваш изначальный код можно сократить в 2 раза, хотя это тоже будет извращение.
2. Все очень просто, делаете названия переменных array_X_Y, где X и Y соответственно конкретные номера ячеек, потом пишите 2 цикла в которых перебираете все установленные значения.

что то типа такого

for $x
for $y
$arr[$x][$y]=(isset($_REQUES['array_'.$x.'_'.$y]) ? $_REQUES['array_'.$x.'_'.$y] : 0);

Код 3 строчки делает все что у вас на 90 строк.


-----
Программим потихоньку http://www[dot]altycon[dot]ru
 
 Top
JustUserR
Отправлено: 06 Февраля, 2011 - 14:48:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




alexey90210 пишет:
Вот мой страшный код - помогите сделать из него канфетку
Использование языка PHP предполагает возможность осуществления перевода информацилонных полей в увроянях трактования рассичтываемых данных и элементах исполняемого потока кода - таким образом для осуществления выполнения массовых операций использующих в качестве операндов различные объекты первого порядка идентификаторы которых могут быть также рассчитаны в исполняемом потоке


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB