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 :: Многоуровневый массив

 PHP.SU

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


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

> Описание: Help!!! вдумалось мне из формы через POST получить многоуровневый массив
jonik908
Отправлено: 26 Марта, 2013 - 20:19:56
Post Id



Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2013  


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




Help!!! вдумалось мне из формы через POST получить многоуровневый массив.
может я вообще все не правильно делаю? Заранее благодарю.
CODE (htmlphp):
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.             [0] => input1
  5.             [1] => input2
  6.         )
  7.  
  8.     [1] => Array
  9.         (
  10.             [0] => input1
  11.             [1] => input2
  12.         )
  13. )


вот из этого чуда Однако
CODE (javascript):
скопировать код в буфер обмена
  1. <script language="javascript">
  2. // Теперь эта функция будет принимать указатель на объект, после которого нужно осуществить вставку
  3. function add_input(obj)
  4. {
  5. var new_input=document.createElement('div');
  6. new_input.innerHTML='<br>инпут №'+document.getElementById('inputi').getElementsByTagName('div').length+'<br><input name="product[]"><input name="product[]">';
  7.  
  8. //Ищем присутствует ли следующий узел в структуре DOM-а
  9. if (obj.nextSibling)
  10.     // если да - то создаем после него
  11.     document.getElementById('inputi').insertBefore(new_input,obj.nextSibling)
  12. //если такого не нашлось то просто добавляем в конец
  13. else document.getElementById('inputi').appendChild(new_input);
  14. }
  15. // А эта функция будет принимать указатель на объект, который нужно удалить
  16. function del_input(obj)
  17. {
  18. document.getElementById('inputi').removeChild(obj)
  19. }
  20. </script>

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //условие на дабовления данных
  3. if ($_GET['ok']=="submit"){
  4. $product = array();
  5. $product=($_POST['product']);
  6. //$add = "INSERT INTO product(nomer, product, price, mesto) VALUES ('$nomer', '$product[product]', '$product[cena]', '$product[mesto]')";
  7. //$dannie = mysql_query ($add);}
  8. echo "OK";}
  9. //форма ввода данных
  10.  
  11. echo "<input type=\"button\" onclick=\"add_input(document.getElementById('inputi').getElementsByTagName('div')[document.getElementById('inputi').getElementsByTagName('div').length-1])\" value=\"Добавить еще один инпут\">";
  12. echo "<input type=\"button\" onclick=\"del_input(document.getElementById('inputi').getElementsByTagName('div')[document.getElementById('inputi').getElementsByTagName('div').length-1])\" value=\"Убрать лишний\">";
  13. echo "<form action=\"index.php?do=add&ok=submit\" method=\"POST\">";
  14. echo "<div id=\"inputi\">";
  15. echo "<div></div>";
  16. echo "</div>";
  17. echo "<input type=\"submit\" value=\"OK\">";
  18. echo "</form>";
  19.  
  20. echo "<pre>";
  21. print_r ($product);
  22. echo "</pre>";
  23. ?>
 
 Top
DeepVarvar Супермодератор
Отправлено: 26 Марта, 2013 - 20:33:40
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




CODE (html):
скопировать код в буфер обмена
  1. <form method="post" action="script.php">
  2.   <input type="text" name="arr[0][0]" value="a" />
  3.   <input type="text" name="arr[0][1]" value="b" />
  4.   <input type="text" name="arr[1][0]" value="c" />
  5.   <input type="text" name="arr[1][1]" value="d" />
  6. </form>
 
 Top
jonik908
Отправлено: 26 Марта, 2013 - 20:44:48
Post Id



Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2013  


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




input добавляется неограниченное количество через скрипт их может быть и 2 и 5 и 10... понятно что можно мозги не любить и сделать так)))....хочется сделать по нормальному(правильно). зачернения через java скрипт передать??? будет правильно???(через скрипт вроде работает)

(Отредактировано автором: 26 Марта, 2013 - 20:54:07)

 
 Top
DelphinPRO
Отправлено: 26 Марта, 2013 - 22:13:11
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




jonik908 пишет:
хочется сделать по нормальному(правильно).
DeepVarvar показал единственно правильный вариант


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
jonik908
Отправлено: 27 Марта, 2013 - 17:53:20
Post Id



Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2013  


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




DelphinPRO пишет:
jonik908 пишет:
хочется сделать по нормальному(правильно).
DeepVarvar показал единственно правильный вариант
Не понял если говорить о чистом Html то несомненно да!!!! это все здорова и замечательно!!!!!!! Эй ау народ читайте внимательней!!!!! ключевое слово Javascript!!!!! как быть в таком случае???? Хм я как людей прошу! а мне в место этого отписки Нахмурился

CODE (html):
скопировать код в буфер обмена
  1. <form method="post" action="script.php">
  2.       <input type="text" name="arr[0][0]" value="a" />
  3.       <input type="text" name="arr[0][1]" value="b" />
  4.       <input type="text" name="arr[1][0]" value="c" />
  5.       <input type="text" name="arr[1][1]" value="d" />
  6.     </form>

я эту форму прекрасно сам знаю!Еще раз повторю!!!! как Это реализовать через javascript????или я много прошу?
 
 Top
tuareg
Отправлено: 27 Марта, 2013 - 18:27:12
Post Id


Участник


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


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




Вам не кажется, что это переписка "глухого" со "слепым".
Вам дали корректный html код
CODE (html):
скопировать код в буфер обмена
  1.  
  2. ...
  3. <input type="text" name="arr[0][1]" value="b" />
  4. ...
  5.  

Вы же вставляете
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. ...
  3. <input name="product[]">
  4. ...
  5.  

Разницу видите?
Т.е Вам надо как то запоминать значения и подставлять уже
<input name="product[x][y]">
 
 Top
jonik908
Отправлено: 27 Марта, 2013 - 18:49:50
Post Id



Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2013  


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




да все понятно... повторяю же я!!!


<input name="product[x][y]">
вопрос стоит в следующем
<input name="product[x][y]"> эта конструкция идет через javaScript(поле для ввода добавляются через кнопку(надо два поля пожалуйста, три да раби бога ))
если грубо то мне надо
получить:
поле ввода1.1/поле ввода1.2/поле ввода1.3
поле ввода2.1/поле ввода2.2/поле ввода2.3
итд
на выходе хочу получить

CODE (htmlphp):
скопировать код в буфер обмена
  1.     (
  2.         [0] => Array
  3.             (
  4.                 [0] => input1
  5.                 [1] => input2
  6.             )
  7.      
  8.         [1] => Array
  9.             (
  10.                 [0] => input1
  11.                 [1] => input2
  12.             )
  13.     )

если писать
CODE (htmlphp):
скопировать код в буфер обмена
  1. <input name="product[x][y]">

где x.y пустое значение все работает
CODE (htmlphp):
скопировать код в буфер обмена
  1.     (
  2.         [0] => Array
  3.             (
  4.                 [0] => input1
  5.             )
  6.      
  7.         [1] => Array
  8.             (
  9.                 [0] => input2
  10.             )
  11.     )

если писать
CODE (htmlphp):
скопировать код в буфер обмена
  1. <input name="product[x][y]"><input name="product[x][y]">итд

где x.y пустое
CODE (htmlphp):
скопировать код в буфер обмена
  1.     Array
  2.     (
  3.         [0] => Array
  4.             (
  5.                 [0] => input1
  6.                 [1] => input2
  7.                 итд
  8.             )
  9.  
  10.     )
  11.  

в итоге я поступил по другому
CODE (htmlphp):
скопировать код в буфер обмена
  1. <input name="product[x][y]"><input name="product[x][y]">

где x-подставляет значения javascript. y-пустое
CODE (htmlphp):
скопировать код в буфер обмена
  1.     Array
  2.     (
  3.         [0] => Array
  4.             (
  5.                 [0] => input1
  6.                 [1] => input2
  7.             )
  8.      
  9.         [1] => Array
  10.             (
  11.                 [0] => input1
  12.                 [1] => input2
  13.             )
  14.     )

все работает.... но меня не покидает смутное сомнение по поводу правильности такова решения...я дико извиняюсь.... может я не так объясняю???

(Отредактировано автором: 27 Марта, 2013 - 18:54:04)

 
 Top
armancho7777777 Супермодератор
Отправлено: 27 Марта, 2013 - 19:12:13
Post Id



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


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


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




jonik908 пишет:
может я не так объясняю???

tuareg пишет:
переписка "глухого" со "слепым"
 
 Top
jonik908
Отправлено: 27 Марта, 2013 - 19:32:47
Post Id



Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2013  


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




Не понял хорошо.. хорошо... данный код верен???
Скачать файл: test.php
Скачан раз: 50
 
 Top
tuareg
Отправлено: 27 Марта, 2013 - 19:47:18
Post Id


Участник


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


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




Да. Я рад, что Вы самостоятельно пришли к данному решению Улыбка
 
 Top
jonik908
Отправлено: 27 Марта, 2013 - 20:03:35
Post Id



Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Март 2013  


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




Хм какой то счетчик мне подсказывает, что кроме меня, этот файл больше никто не скачивал
Прикреплено изображение (Нажмите для увеличения)
test.JPG

(Отредактировано автором: 27 Марта, 2013 - 20:32:54)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB