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 :: Как передать в 2 переменные значения 2х SELECT-ов

 PHP.SU

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


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

> Без описания
wmz38
Отправлено: 29 Июля, 2015 - 09:11:35
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


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




Всем привет!
А если несколько SELECT-ов, как сделать так что бы одним SUBMIT-ом передать в несколько переменных значения каждого из них?
Например:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $values=array("FFF","AAAA","CCC");
  3. $number=count($values);
  4. ?>
  5. <form method="post">
  6. <select name="polling">
  7. <?PHP  
  8. for($i=0; $i<$number; $i++) echo "<option value=\"$i\"> $values[$i]</option>";
  9. ?>
  10. </select>
  11. <select name="polling1">  
  12. <?PHP  
  13. for($i=0; $i<$number1; $i++) echo "<option value=\"$i\"> $values1[$i]</option>";
  14. ?>
  15. </select>
  16. <input type="submit" value="Ok" />
  17. </form>
  18. <?PHP
  19. if(isset($_POST['polling'])) echo $_POST['polling'];
  20.  
  21. //например что бы в переменные ниже передавались выбранные значения поля SELECT
  22. //$lv = $_POST['polling'];
  23. //$lv1 = $_POST['polling1'];
  24. ?>

(Отредактировано автором: 29 Июля, 2015 - 10:25:59)

 
 Top
Viper
Отправлено: 29 Июля, 2015 - 10:43:12
Post Id



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


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


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




CODE (html):
скопировать код в буфер обмена
  1. <select name="polling[]">
  2. ...
  3. <select name="polling[]">
  4. ...
  5. <select name="polling[]">


Будет массив
CODE (htmlphp):
скопировать код в буфер обмена
  1.     'polling' => array(
  2.         0 => '',
  3.         1 => '',
  4.         2 => ''
  5.     )
  6. )


Ну или можете в квадратных скобках имя ключа для массива добавить.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
wmz38
Отправлено: 29 Июля, 2015 - 11:15:47
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


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




Viper пишет:

Будет массив
CODE (htmlphp):
скопировать код в буфер обмена
  1.     'polling' => array(
  2.         0 => '',
  3.         1 => '',
  4.         2 => ''
  5.     )
  6. )


Ну или можете в квадратных скобках имя ключа для массива добавить.


Не совсем понял как выводить в переменную значения полученные из массива, можете пример привести? Заранее спасибо.

(Отредактировано автором: 29 Июля, 2015 - 11:17:28)

 
 Top
Viper
Отправлено: 29 Июля, 2015 - 11:48:45
Post Id



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


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


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




CODE (htmlphp):
скопировать код в буфер обмена
  1. <select name="polling[select1]">
  2. <select name="polling[select2]">
  3.  
  4. $_POST['polling']['select1']
  5. $_POST['polling']['select2']


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
wmz38
Отправлено: 29 Июля, 2015 - 12:37:51
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


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




Viper пишет:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <select name="polling[select1]">
  2. <select name="polling[select2]">
  3.  
  4. $_POST['polling']['select1']
  5. $_POST['polling']['select2']


Спасибо за подсказки, кстати завязал на чекбоксы работает:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $aDoor = $_POST['formDoor'];
  4. if(empty($aDoor))
  5. {
  6.         echo("Вы ничего не выбрали.");
  7. }
  8. else
  9. {
  10.         $N = count($aDoor);
  11.         echo("Вы выбрали $N расчет(а): ");
  12.         for($i=0; $i < $N; $i++)
  13.         {
  14.                 echo($aDoor[$i] . " ");
  15.                 $SelectedElement = $_POST['polling']['select1'];
  16.                 $SelectedElement1 = $_POST['polling']['select2'];
  17.                 $arr = array(
  18.                               0 => $SelectedElement,
  19.                               1 => $SelectedElement1
  20.                              );
  21.                 //echo "lv_1:".$arr[0]."<br> lv_2:".$arr[1];
  22.         }
  23. }
  24.        
  25. ?>
  26.  
 
 Top
wmz38
Отправлено: 30 Июля, 2015 - 16:51:43
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


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




Товарищи, подскажите пожалуйста, как передать выбранное значение из формы SELECT в переменную?

пример формы:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. //создаем список классов
  4. $class=array("He","Th","Pr","Sr");
  5. //считаем количество элементов в массиве
  6. $classnumber=count($class);
  7. //считаем количество элементов в массиве
  8. $number=count($values);
  9. ?>
  10. Выбрать клс: <form action="#" method="request">
  11. <select name="classname">
  12. <?PHP
  13. //формируем выпадающий список из массива
  14. for($i=0; $i<$classnumber; $i++) echo "<option value=\"$i\"> $class[$i]</option>";
  15. ?>
  16. </select>
  17. </form>
  18. <?PHP
  19.  
 
 Top
andrewkard
Отправлено: 30 Июля, 2015 - 16:59:12
Post Id


Участник


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


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




wmz38
method="request" поставьте POST или GET
потом отлавливаете так, как написали Вам выше:
$var_name = $_POST['classname']
или
$var_name = $_GET['classname']
 
 Top
wmz38
Отправлено: 30 Июля, 2015 - 17:55:21
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


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




andrewkard пишет:
wmz38
method="request" поставьте POST или GET
потом отлавливаете так, как написали Вам выше:
$var_name = $_POST['classname']
или
$var_name = $_GET['classname']

Я так и делал, просто метод REQUEST был 3м по счету после GET и POST.
Как отлавливать, я точно так же и делаю?

Есть подозрение что в переменную $var_name передаются значения массива, или нет?

(Отредактировано автором: 30 Июля, 2015 - 17:56:27)

 
 Top
andrewkard
Отправлено: 30 Июля, 2015 - 18:13:56
Post Id


Участник


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


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




Все зависит от того, что именно Вы передаете.
Попробуйте вывести var_dump ($_POST);
Вот так будет просто значение:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. if (isset($_POST['classname'])){
  4.    echo $_POST['classname'];
  5. }
  6. ?>
  7. <html>
  8. <form action="" method="post">
  9.     <select name="classname">
  10.         <option value="sel1">sel1</option>
  11.         <option value="sel2">sel2</option>
  12.     </select>
  13.     <input type="submit" />
  14. </form>
  15. </html>
  16.  

(Отредактировано автором: 30 Июля, 2015 - 18:15:43)

 
 Top
wmz38
Отправлено: 31 Июля, 2015 - 08:37:55
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Апр. 2007  


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




andrewkard пишет:
Все зависит от того, что именно Вы передаете.
Попробуйте вывести var_dump ($_POST);
Вот так будет просто значение:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. if (isset($_POST['classname'])){
  4.    echo $_POST['classname'];
  5. }
  6. ?>
  7. <html>
  8. <form action="" method="post">
  9.     <select name="classname">
  10.         <option value="sel1">sel1</option>
  11.         <option value="sel2">sel2</option>
  12.     </select>
  13.     <input type="submit" />
  14. </form>
  15. </html>
  16.  


Это я понимаю, ничего не происходит, может ли быть связано с тем, что у меня ниже по коду идет обработка CHECKBOX-ов таким же методом?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $aDoor = $_POST['formDoor'];
  4. if(empty($aDoor))
  5. {
  6.         echo("Вы ничего не выбрали.");
  7. }
  8. else
  9. {
  10.         $N = count($aDoor);
  11.         echo("Вы выбрали $N расчет(а): ");
  12.         for($i=0; $i < $N; $i++)
  13.         {
  14.                 echo("№".$aDoor[$i] . " ");
  15.                 $SelectedElement = $_POST['polling']['select1'];
  16.                 $SelectedElement1 = $_POST['polling']['select2'];
  17.                 $arr = array(
  18.                               0 => $SelectedElement,
  19.                               1 => $SelectedElement1
  20.                              );
  21.                 //echo "lv_1:".$arr[0]."<br> lv_2:".$arr[1];
  22.         }
  23. }
  24. ?>
  25.  

(Отредактировано автором: 31 Июля, 2015 - 08:39:38)

 
 Top
andrewkard
Отправлено: 31 Июля, 2015 - 10:12:31
Post Id


Участник


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


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




Тестируйте, трудно сказать что у Вас не видя всего кода. Посмотрите в консоли firebug (firefox), что отсылаете и что приходит. Дальше действуйте исходя из этого. Посмотреть что приходит можно так: var_dump ($_POST); exit;
 
 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