ДОБРАТЬСЯ и POST на той же странице?

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

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

Я очень плохо знаком с php и являюсь обучением сам.

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

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

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

Теперь reply.php имеет форму в нем для регистрации ответа. Форма переходит к postReply.php

Это находится в postReply.php

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

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

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

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

6
задан Phil 13 June 2010 в 19:58
поделиться

6 ответов

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

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

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

7
ответ дан 9 December 2019 в 20:40
поделиться

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

1
ответ дан 9 December 2019 в 20:40
поделиться

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

4
ответ дан 9 December 2019 в 20:40
поделиться

Использование формы со скрытым вводом ( ), вероятно, самый чистый способ сделать что-то.

PHP также определяет глобальный массив $ _ REQUEST в дополнение к $ _ GET и $ _ POST . Как правило, вы должны использовать либо $ _ GET , либо $ _ POST , но в этом случае, когда verseid передается для обоих методов, это может быть более удобным использовать $ _ REQUEST ['verseid'] . Таким образом, вам не нужно заботиться о методе HTTP, используемом в вашем скрипте.

0
ответ дан 9 December 2019 в 20:40
поделиться

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

Вы можете сделать это, указав значение GET в параметре action тега form , либо даже переключившись на значение POST, добавив в форму.

0
ответ дан 9 December 2019 в 20:40
поделиться

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

0
ответ дан 9 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: