GET и POST на той же странице?

EDIT: Ответ найден! Большое спасибо, много ответов работало, я выбрал скрытый ответ на поле, поскольку это было проще всего: D

Я создаю сценарий комментирования, и я столкнулся с проблемой. Мне нужно использовать $ _POST и $ _GET на той же странице, что, на мой взгляд, не имеет смысла.

Я очень новичок в php и сам тренируюсь.

У меня есть страница с именем viewVerses.php – у нее есть списки стихов. Когда кто-то следует за ответной ссылкой,

echo '<br /><a href="reply.php?verseid='.$verseid.'">Reply</a>'; 

Я передаю verseid (комментируя библейские стихи) в reply.php, так что запрос может быть сделан с этим verseid. (Это так, что пользователь все еще может видеть стих, который он комментирует).

Теперь answer.php имеет форму для отправки ответа. Форма отправляется postReply.php

Это в postReply.php

 $title = $_POST['title']; $body = $_POST['body']; $verseid = $_GET[verseid]; 

Могу ли я получить verseid из url и POST значения из формы на той же странице?

Если нет, есть ли способ сделать это лучше? Помните, что я новичок в php и, вероятно, не буду реализовывать решение, которое сложно. Я должен получить его для моего, чтобы поместить его на свой сайт.

Надеюсь, это ясно

Я бы добавил скрытый ввод в форму комментария:

 <input type="hidden" name="verseid" value=" <?php echo $_GET['verseid']; ?> " /> 

Таким образом, в postReply.php вы можете получить к нему доступ, используя $_POST['verseid'] .

Да, ты можешь. Метод формы (на странице html) может быть POST, а URL-адрес действия может содержать аргументы «GET», что-то вроде process.php?vid=1001 так сказать. Итак, в process.php вас будет vid как $ _GET, а остальные данные из формы – $ _POST.

Конечно, вы можете просто установить действие формы postReply.php? Verseid = id_of_the_verse таким образом, когда пользователь отправляет ответ, в массиве POST будут данные, связанные с ответом, и в GET идентификатор стиха.

Да, с одним запросом можно смешивать значения GET и POST. Вероятно, проблема заключается в том, что вы передаете значение GET для reply.php , которое затем передает значения POST в postReply.php . Итак, если вы не скажете reply.php чтобы отправить это значение GET, оно потеряется.

Вы можете сделать это, указав значение GET в параметре действия тега form , или вы можете даже переключиться на значение POST с помощью этого, добавив <input type="hidden" name="verseid" value="<?php echo $verseid; ?>" /> в форму.

Хотя это может показаться противоречивым, HTTP-запрос может поступать как с данными Form и с QueryString . Как и robertbasic, вы можете получить к ним доступ через соответствующие массивы.

Использование формы со скрытым вводом ( <input type="hidden" name="verseid" value="..." /> ), вероятно, самый чистый способ делать вещи.

PHP также определяет глобальный массив $_REQUEST в дополнение к $_GET и $_POST . В общем случае вы должны использовать либо $_GET либо $_POST но в этом случае, когда verseid передается для обоих методов, было бы удобнее использовать $_REQUEST['verseid'] . Таким образом, вам не нужно беспокоиться о методе HTTP, который используется в вашем скрипте.