Проблема с выводом на экран данных при выборе из выпадающего списка!

Тема в разделе "PHP", создана пользователем Pavl, 18 июл 2020.

  1. Pavl

    Pavl

    Регистрация:
    17 сен 2016
    Сообщения:
    10
    Симпатии:
    0
    Добрый день!
    На сайте есть две формы.
    Первая форма - для добавления пользователем "часовых поясов" и "смещения по времени". Эти данные заносятся в БД (таблица 'poyas3' с полями 'title'(часовой пояс) и 'offset'(смещение по времени)). Значения поля 'title' подставляются в выпадающий список.
    Вторая форма - выпадающий список "часовых поясов". При выборе одного из значения "часового пояса" (например, "Asia/Ekaterinburg") и нажатии "Отправить" в браузере должно выводится "Смещение от Гринвича: 10 часов", но вместо этого выводится множество таких строк:
    Notice: Array to string conversion in C:\OSPanel\domains\test\www\scriptd z811.php on line 21
    Смещение от Гринвича: .Array['offset']. часов

    Форма с выпадающим списком на данный момент выглядит так:
    PHP:
    <form action="scriptdz811.php" method="post" name="form1">
        <p><select name="list1">
                <option>Выберите из списка</option>

                   <?php foreach($table as $idx => $data) {
                    echo 
    '<option>'.$table[$idx]['title'].'</option>';
                    }
    ?>
            </select></p>
        <p><input type="submit" value="Отправить"></p>
    </form>
    Фрагмент скрипта, в котором ловятся данные из формы:

    PHP:
    if(isset($_POST['list1'])){
        
    $select1 $_POST['list1'];
       foreach(
    $table as $idx => $data) {
           echo 
    "Смещение от Гринвича: .$table[$idx]['offset']. часов";
                    }
    }
    Если вы видите ошибку, то скажите, пожалуйста, что я делаю не правильно?
    Если необходимо, то выложу весь код!
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    не понятно что конкретно находится на 21 строке из этого всего.
    PHP:
    <?php foreach($table as $idx => $data) {
        echo 
    '<option>'.$data['title'].'</option>';
    }
    ?>
    PHP:
    if(isset($_POST['list1'])){
        
    $select1 $_POST['list1'];
       foreach(
    $table as $idx => $data) {
           echo 
    'Смещение от Гринвича:' .$data['offset']. 'часов';
                    }
    }
    это из того что прям бросается в глаза.
     
    Pavl нравится это.
  3. Pavl

    Pavl

    Регистрация:
    17 сен 2016
    Сообщения:
    10
    Симпатии:
    0
    Строка № 21:
    PHP:
    echo "Смещение от Гринвича: .$table[$idx]['offset']. часов";

    Попробовал написать так, как Вы. Получается, что выбора при выборе из выпадающего списка не происходит. То есть, не важно, какой часовой пояс выбираешь - в браузере выводятся сразу все строки со значениями поля 'offset', а должно быть, какое-то одно определённое. Но, никакую ошибку браузер уже не выводит.
     
    Последнее редактирование: 18 июл 2020
  4. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    значит
    PHP:
    $table[$idx]['offset']
    тут массив а не строка. об этом Нотис и говорит.
     
    Pavl нравится это.
  5. Pavl

    Pavl

    Регистрация:
    17 сен 2016
    Сообщения:
    10
    Симпатии:
    0
    Этот момент с Вашей помощью решён (я же написал выше). Выбора из выпадающего списка не происходит. Сделал, как в Вашем коде. В этом на данный момент проблема (в своём ответе выше я об этом, тоже написал).