Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 170

Возвращение результата обработки формы

25.01.2015, 16:52. Показов 5185. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! У меня на одном файле есть форма, обработка просиходит в другом файле. Но результат обработки выводится во втором файле. Как можно вывести результат обработки на первый файл, сразу под форму, не открывая никаких других вкладок? Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.01.2015, 16:52
Ответы с готовыми решениями:

Возвращение результата в запросе INSERT
Табличка: CREATE TABLE IF NOT EXISTS `template` ( `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(45) NOT...

Возвращение результата об ошибке при работе с БД
Вот фрагмент кода: $this->db = new mysqli($this->host, $this->user, $this->pass, $this->name_db) or die(mysqli_error()); ...

Возвращение результата поиска
Существует форма на которой имеются компоненты ADOtable, ADOconection, datasourse, DBGrid. Подключена база даных и в DBGrid выводиться...

38
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
25.01.2015, 23:43
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от iFlash Посмотреть сообщение
И как смотреть какой радио установлен, если они имеют одинаковые названия.
См., как передается значение радиобаттона (определите разные значения).

Цитата Сообщение от iFlash Посмотреть сообщение
Я так понимаю, для этого нужно использовать js что бы потом обратно задать эти значения. PHP же не может напрямую влиять на состояния html-объектов? Или я ошибаюсь?
JS использовать можно, но лучше это делать на PHP. Вы при формировании результирующей страницы на PHP элементам формы придаете те свойства, которые соответствуют полученным параметрам.

Добавлено через 2 минуты
Например:
Code
1
<input type="text" name="name" id="name" value="<?= $name ?>">
0
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 170
26.01.2015, 10:28  [ТС]
miketomlin, понял, спасибо. Пролили свет на некоторые вещи для меня)
Но если создать два радиобаттона с разными именами, то они не будут взаимодействовать друг с другом, их нужно будет дополнительно обрабатывать с помощью js или php.

Добавлено через 9 часов 58 минут
Можете исправить на моем коде, как должно выглядеть задание и возвращение нужных состояний элементов в обработчике, а то я что то не могу представить как это сделать. Как задать чекед для нужного радиобаттона, как задать значение опции селекта, что бы при нажатии кнопки все возвращалось на свое место.
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
26.01.2015, 16:33
Цитата Сообщение от iFlash Посмотреть сообщение
Но если создать два радиобаттона с разными именами, то они не будут взаимодействовать друг с другом, их нужно будет дополнительно обрабатывать с помощью js или php.
Имя одно, значения разные.
0
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 170
26.01.2015, 17:06  [ТС]
miketomlin, напишите пожалуйста какой-то псевдокод к этому всему, а то я не совсем понял как это все в целое собрать. На основе моего кода.
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
26.01.2015, 17:45
Какой псевдокод? Вы в обработчике получаете три параметра: выбранный радиобаттон, выбранный жанр и выбранный автор. По значению выбранного радиобаттона определяете, по какому из оставшихся двух параметров и соответственно полей таблицы делать финальную выборку.

Добавлено через 3 минуты
Попутно по значениям полученных параметров также воссоздаете состояние элементов формы.
0
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 170
26.01.2015, 17:59  [ТС]
miketomlin, по поводу воссоздания формы, как мне конкретно обратно задать опцию селекта, как это должно выглядеть в коде
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
26.01.2015, 18:17
Когда формируете элементы раскрывающегося списка, добавляйте к элементу, значение которого совпадает со значением соотв. параметра, атрибут, указывающий на выбор этого элемента (вроде бы называется selected).

Добавлено через 4 минуты
Когда параметров нет, т.е. до первого POST-запроса, можете задать задать значение по умолчанию.
0
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 170
27.01.2015, 11:31  [ТС]
miketomlin, то есть мне в обработчике нужно полностью с нуля перерисовывать страницу. Костыли)

Добавлено через 7 часов 43 минуты
Хоть убей, не получается перерисовать заново форму по зафиксированным значениям, после перезагрузки все равно сбрасывается радио и селект:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<!DOCTYPE html>
<html>
<head>
    <title>Каталог | Каталог книг</title>
    <link rel="stylesheet" href="style.css">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <div class="catalogue">
        <h3>Выбрать книги по категории:</h3>
        <form action="" method="post">
            <p><input name="option"  type="radio" id = "genre_radio" value="genre_radio" onclick="hideSelect()" checked>Жанр</p>
            <p><input name="option"  type="radio" id = "author_radio" value="author_radio" onclick="hideSelect()">Автор</p>
            <select id="genres_select" name="genres_select">
                <?php
                    $mysqli = mysqli_connect("localhost","root","","books_db") or die("Error " . mysqli_error($mysqli));
                    $mysqli->query('SET NAMES utf8');
                    $res=$mysqli->query("SELECT DISTINCT `genre` FROM `books`");
                    while ($row = mysqli_fetch_array($res)){
                        echo "<option value=\"".$row["genre"]."\">". $row["genre"] ."</option>";
                    }
                    $mysqli->close();
                ?>
            </select>
            <select id="authors_select" name="authors_select" style="display:none;">
                <?php
                    $mysqli = mysqli_connect("localhost","root","","books_db") or die("Error " . mysqli_error($mysqli));
                    $mysqli->query('SET NAMES utf8');
                    $res=$mysqli->query("SELECT DISTINCT `author` FROM `books`");
                    while ($row = mysqli_fetch_array($res)){
                        echo "<option value=\"".$row["author"]."\">". $row["author"] ."</option>";
                    }
                    $mysqli->close();
                ?>
            </select>
            <script type="text/javascript">
                function hideSelect() {
                    if (document.getElementById("genre_radio").checked) {
                        document.getElementById("authors_select").style.display = 'none';
                        document.getElementById("genres_select").style.display = '';
                    } else if (document.getElementById("author_radio").checked) {
                        document.getElementById("authors_select").style.display = '';
                        document.getElementById("genres_select").style.display = 'none';
                    }
                }
            </script>
            <p><input type="submit" name="submit_select" value="Показать книги"></p>
        </form>
        <?php /** обработчик */
            $mysqli = mysqli_connect("localhost","root","","books_db") or die("Error " . mysqli_error($mysqli));
            $mysqli->query('SET NAMES utf8');
            if (isset($_POST["submit_select"])) {
                if (isset($_POST["option"])){
                    if ($_POST["option"]==="genre_radio") {
                        $selectedOptionGenre = $_POST["genres_select"];
                        $query = "SELECT * FROM books WHERE genre = \"".$selectedOptionGenre."\"";
                        echo "<script type=\"text/javascript\">";
                        echo "document.getElementById(\"genres_select\").selectedIndex = \".$selectedOptionGenre.\""; //пытаюсь зафиксировать и восстановить выбранную опцию в селекте
                        echo "</script>";
                    } elseif ($_POST["option"]==="author_radio") {
                        echo "<script type=\"text/javascript\">";
                        echo "document.getElementById(\"authors_select\").selectedIndex = \".$selectedOptionAuthor.\"";
                        echo "</script>";
                        $selectedOptionAuthor = $_POST["authors_select"];
                        $query = "SELECT * FROM books WHERE author = \"".$selectedOptionAuthor."\"";   
                    }
                }
            }
            $res=$mysqli->query($query);
            $rows = $res->fetch_assoc();
            do {
                echo $rows['name'].$rows['genre'].$rows['author'].$rows['price']."<br/>";
            }
            while ($rows = $res->fetch_assoc());
            $mysqli->close();
        ?>
    </div>
</body>
</html>
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
27.01.2015, 14:43
Цитата Сообщение от iFlash Посмотреть сообщение
miketomlin, то есть мне в обработчике нужно полностью с нуля перерисовывать страницу. Костыли)
А что трудно совместить код исходной страницы и результирующей? Вы вроде бы сами просили выводить результат под той же формой, которую используете для запроса на получение этого результата.

Пробуйте и у вас все получится. Пока что у вас cheched по-прежнему прописан жестко. Добавления selected к выбранному элементу, про который я говорил, тоже не увидел.
0
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 170
27.01.2015, 18:31  [ТС]
miketomlin, та я уже как угодно пробовал. Приведите хоть какой-то пример кода. Я на словах не очень сообразил.

Добавлено через 1 минуту
Цитата Сообщение от miketomlin Посмотреть сообщение
Добавления selected к выбранному элементу, про который я говорил, тоже не увидел.
вот так я пытался это сделать:
PHP/HTML
1
echo "document.getElementById(\"authors_select\").selectedIndex = \".$selectedOptionAuthor.\"";
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
27.01.2015, 23:54
Я вам показывал пример модификации элемента формы на PHP. Для переключателя должно быть как-то так:
Code
1
2
<p><input name="option"  type="radio" id = "genre_radio" value="genre_radio" onclick="hideSelect()"<?= $option=='genre_radio'?' checked':'' ?>>Жанр</p>
<p><input name="option"  type="radio" id = "author_radio" value="author_radio" onclick="hideSelect()"<?= $option=='author_radio'?' checked':'' ?>>Автор</p>
Аналогично и для раскрывающихся списков.
0
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 170
28.01.2015, 00:02  [ТС]
miketomlin, ну а начальное состояние тоже как то надо задать, которое будет работать при первой загрузке страницы. И по поводу селектов. Как я них могу повлиять, если они напрямую из базы заполняются в цикле.
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
28.01.2015, 00:11
Ваш подход тоже приемлем. Это вариант совместного использования JS/PHP. Если только на JS, то нужно делать сохранение выбранного элемента в куках.
0
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 170
28.01.2015, 00:11  [ТС]
Даже если делать так как вы говорите, значения все равно не фиксируються
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
28.01.2015, 00:20
Это была дописка к моему пред. посту. Думал, что вы уже

Добавлено через 2 минуты
Цитата Сообщение от iFlash Посмотреть сообщение
Даже если делать так как вы говорите, значения все равно не фиксируються
Я писал без проверки. Может, где-нибудь и ошибся. Хотел донести до вас сам принцип.

Добавлено через 1 минуту
Цитата Сообщение от iFlash Посмотреть сообщение
miketomlin, ну а начальное состояние тоже как то надо задать, которое будет работать при первой загрузке страницы. И по поводу селектов. Как я них могу повлиять, если они напрямую из базы заполняются в цикле.
Ну, Ё! Сделайте проверку POST-параметров. Если их нет, присвойте $option какое-нибудь значение по умолчанию. Вы вообще приведенный вами PHP-код сами писали?

Добавлено через 3 минуты
Вы сами формируете список элементов раскрывающегося списка. Пометьте выбранным тот, который передан вам через POST-параметр, или так же любой на ваш выбор.
0
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 170
28.01.2015, 00:28  [ТС]
miketomlin, код полностью мой, но с подобными вещами никогда не работал и не имею представления об этом. Все что вы мне объясняете я на словах вроде понимаю, но реализовать не могу.
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
28.01.2015, 00:33
Вы не можете проверить наличие $_POST['option'] и на основе этой проверки переприсвоить переменной $option значение этого параметра или любое другое значение на ваш выбор, если параметра нет?

Добавлено через 52 секунды
Я спать...
0
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 170
28.01.2015, 00:40  [ТС]
miketomlin, та делал я проверки и присваивал все как вы говорите. Если вы понимаете и знаете как это сделать, то допишите уже эти две строчки и все. Код то готовый.

Добавлено через 4 минуты
С базы у меня все хорошо выбирается, только не фиксируются радио и селекты.
0
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 170
30.01.2015, 00:49  [ТС]
Ну может кто-то знает как это решить? Что-то я сомневаюсь что моя проблема супер сложная и уникальная.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.01.2015, 00:49

Возвращение результата из функции
Доброго времени суток. Ситуация следующая: в функции используется стек. В конце из нее возвращается первый элемент. После же этого данные...

Возвращение результата функции
Добрый день! У меня возник вопрос. Я хочу, чтобы функция возвращала вот такой тип данных TObjectList&lt;TTypeInfo&gt; : function...

Возвращение результата запроса
Добрый вечер! Данный код находит технику по инвентарному номеру и при условии что в одном из полей есть текст содержанием (списан) ...

Возвращение неожиданного результата (Texture)
Здравствуйте форумчане. Не так давно наткнулся на урок по Normal Mapping (ну или Bamp Mapping) и решил повторить.. Ну так вот там есть...

Возвращение результата SQL-запроса в переменную
Здравствуйте, помогите пожалуйста Есть БД на sql server 2008 в ней таблица new_reader В Делфи7 делаю форму добавления записи, нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru