За последние 24 часа нас посетил 17061 программист и 1652 робота. Сейчас ищут 889 программистов ...

Как получит значение из выпадающего списка?

Тема в разделе "Прочие вопросы по PHP", создана пользователем kos20, 28 янв 2015.

  1. kos20

    kos20 Новичок

    С нами с:
    9 янв 2015
    Сообщения:
    21
    Симпатии:
    0
    Есть список, которые формирую так:
    Код (Text):
    1. <?php
    2. // Получить и отобразить результаты
    3. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
    4. $goods[]= $row['goods'];
    5. $key[]=$row['goods_id'];
    6. //echo ($row['goods']."</br>");
    7. //echo("<option value=".$row['goods_id'].">".$row['goods'].'</option>');
    8. }
    9. ?>
    Список есть. Теперь нужно как-то узнать что именно выбрано и напечатать или передать переменной.
    пытаюсь такми кодом, но не получается:
    Код (Text):
    1. <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="POST">
    2.  
    3. <?php
    4. $menu = $POST["menu"];
    5. foreach ($_POST as $key=>$value) {
    6.         echo 'Ключ из $_POST(оно же имя элемента формы) = '.$key.', a значение = '.$value;
    7. }
    8. mysql_close($connection);
    9. ?>
    10.  
    11. <input type="submit" value="Go!" />
    12. </form>
     
  2. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Код (Text):
    1. die(var_dump(array($_POST, $_GET)));
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    var_dump() не возвращает ничего, юный Zuldek
     
  4. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    и что? причем тут возврат значения вообще?

    Написал херню и убежал
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ща по жопе. херню ты написал. ищи где или не пограммист.
     
  6. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Код (Text):
    1. <?php
    2. $_POST['field'] = 1;
    3. $_GET['param'] = 2;
    4. die(var_dump(array($_POST, $_GET)));
    5. $_POST['field'] = 3;
    6. ?>
    Те отдаст:
    Код (Text):
    1. ~/lamantin_git/public_html $ php test.php
    2. array(2) {
    3.   [0]=>
    4.   array(1) {
    5.     ["field"]=>
    6.     int(1)
    7.   }
    8.   [1]=>
    9.   array(1) {
    10.     ["param"]=>
    11.     int(2)
    12.   }
    13. }
    Чем запись не понравилась?
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    да, отдаст. Но не так, как ты думаешь. =)

    Добавлено спустя 15 секунд:
     
  8. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Откуда ты знаешь как я думаю?
    Нахрена мне нужен возврат значения если мне для отладки нужен простой вывод?
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    тогда зачем ты возвращаемое значение, которого нет, передаёшь в функцию? =)
     
  10. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Да удобнее мне такая запись!
    die('1') ты пишешь
    Не будешь же писать
    echo '1';
    die();
    нахрена лишние строки если понимаешь как работает.

    И так познал Игорёк удобство.
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я так не пишу - это раз.

    два - ты написал один код, а по факту отработал другой. =)

    если понимаешь, то не будешь так писать.
     
  12. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    print_r();
    а ты знаешь подаван что die как и exit отрубает полностью отработку скрипта? а у сайта для примера есть и footer.php. Ты предлагаешь ему отрубить пояс, например тебя напополам, хорошо тебе будет?
     
  13. kos20

    kos20 Новичок

    С нами с:
    9 янв 2015
    Сообщения:
    21
    Симпатии:
    0
    Вопрос решил сам, достаточно просто:

    Код (Text):
    1. <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="POST">
    2. <select name="start_tz">
    3.  
    4. <?php
    5. $start_tz=$_POST["start_tz"];
    6. foreach ($goods as $tz) {
    7. echo '<option';
    8. if (strcmp($tz, $start_tz) == 0) {
    9. echo ' selected="selected"';
    10. }
    11. echo ">$tz</option>";
    12. }
    13. ?>
    14. </select>
     
  14. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Ахинею без комментариев оставляю.
     
  15. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    главное чтоб понял, die тебя на пополам =)
     
  16. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Я понял что ты сморозил ахинею которая совершенно никак не относится к вопросу. Когда был показан пример в одну строку показывающий состояние серверных переменных, ты запостил чушь про отрезанные футеры и выставил себя глупо если сам ещё не понял. Свободно владею Perl откуда функция и перекочевала в пых, где она лишь синоним exit() и прекрасно себе представляю что она делает.
    Начинающим, а по твоим постам я примерно вижу твой опыт (header.php, footer.php и в этом духе), простительны такие комментарии, поэтому не в обиде.
     
  17. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    тоесть подаван, ты отрицаешь свою глупость и про die, так?

    Добавлено спустя 2 минуты 57 секунд:
    во вторых = логически раздумать, почему ты именно про хидер футер спомнил, когда это писалось в http://php.ru/forum/viewtopic.php?t=51688, ты начинаешь упоминать сдесь ибо больше ни на что не способен зацепиться. Все верно?

    Добавлено спустя 3 минуты 51 секунду:
    допустим нету футера а у скрипта есть продолжение после вашего die, вопрос - ты все еще не понимаешь малыш о чем речь ведется?
    или весь скрипт место echo в дие у тебя =) LOL

    Добавлено спустя 1 минуту 57 секунд:
    Код (PHP):
    1. <?php
    2. echo 1;
    3. die("rrr");
    4. echo 999; 
    любуйся подаван
     
  18. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Какое <матное слово> тебе, <матное слово>, продолжение, школа?!
    Тебе пришли в сервеных переменных данные или не пришли, стоит задача их быстро увидеть (раз уж нет более удобных инструментов для этого у тс), ты после отправки формы вводишь простейшую одну строку кода в корне стека всех вызовов, пушишь на сервер и видишь содержимое этих переменных просто обновив страницу!
    Нахрена тебе, <матное слово>, выполнять остальную часть твоего, <матное слово> говнокода, где эти переменные в том числе могут быть модифицированы?!
     
  19. deblogger

    deblogger Новичок

    С нами с:
    11 июл 2013
    Сообщения:
    200
    Симпатии:
    0
    func(){
    return 4; // в процессе сложнейших вычислений получилось число
    }

    die(func());

    вывода не будет. Почему?

    Добавлено спустя 7 минут 20 секунд:
    Каноничная схема такова:

    Код (PHP):
    1. $c=array('def'=>'Москва','nsk'=>'Новосибирск','nrl'=>'Норильск');
    2. echo '<select name="menu">';
    3. foreach($c as $key=>$value) {
    4.    $selected=(isset($_POST['menu']) && $_POST['menu']==$key)?' selected':null;
    5.    echo '<option value=".$key."'.$selected.'>'.$value.'</option>';
    6. }
    7. echo '</select>';
    8.  
     
  20. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
    Забомбило =)
     
  21. deblogger

    deblogger Новичок

    С нами с:
    11 июл 2013
    Сообщения:
    200
    Симпатии:
    0
    Быстро увидеть что угодно:

    Код (PHP):
    1. const PAGE_ENCODING        ='UTF-8';
    2. function echoit($msg) {
    3.     echo '<br><pre>';
    4.     if($msg)
    5.         echo htmlents(print_r($msg, true));
    6.     else
    7.         var_dump($msg);
    8.     echo '</pre><br>';
    9. }
    10. function htmlents($value){
    11.     return htmlentities($value,ENT_QUOTES,PAGE_ENCODING,false);
    12. }
    13.