Как дальше мы можем получить доступ к переменной php get?

#php

#php

Вопрос:

У меня есть страница, на которой я показываю краткую запись каждого человека, и есть ссылка для получения подробной информации о каждом человеке, которая переходит на другую страницу, если кто-то хочет отредактировать запись, на этой странице есть опция, но создание другой переменной get не работает.

 <form action="std_edit.php?edit_id=<?php echo $std_id; ?>">
            <input class="std_edit" type="submit" name="edit" value = "Edit">
</form> 
  

я повторил предыдущую переменную get и ее печать в порядке. как я могу заставить ее работать нормально для меня?

Комментарии:

1. Как вы получаете переменную edit_id в std_edit.php ?

2. используя $_GET[‘edit_id’]

3. Итак .. вы говорите нам, что она работает нормально, но у вас не может быть нескольких переменных get? Не могли бы вы объяснить это так, чтобы мы могли понять?

4. Я имею в виду, я надеюсь, вы знаете, что вам просто нужно делать <form action="std_edit.php"> правильно? Каждый <input/> элемент с атрибутом name после этого будет автоматически передан..

5. Попробуйте использовать скрытый ввод

Ответ №1:

Первое, что вы можете «ПОЛУЧИТЬ» переменную, если вы видите это в URL. например: exmaple.com?std_id=Boo

В коде вы что-то делаете:

 $std_id = $_GET['std_id'];  //$std_id will be Boo
<form action="std_edit.php?edit_id=<?php echo $std_id; ?>">
            <input class="std_edit" type="submit" name="edit" value = "Edit">
</form> 
  

Если вам нужна какая-то переменная, она должна быть там в URL.
Взяв пример выше, вы не можете сделать что-то вроде:

 $std_id = $_GET['id'];
  

Причина, id отсутствует в URL.

Ответ №2:

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

 <form action="std_edit.php">
    <input type="hidden" name="edit_id" value="<?php echo $std_id; ?>" />
    <input class="std_edit" type="submit" name="edit" value = "Edit" />
</form>
  

Это заставит его снова работать.

Комментарии:

1. это сработало, но что, если мы захотим обновить записи?

2. @KamranArshad Что вы имеете в виду? Если вы хотите обновить записи, std_edit.php страница должна позаботиться об этом. Вы просто создаете новую форму, в которую вставляете все существующие данные. Затем, если данные изменены, просто отправьте эту форму и обновите ее в своей базе данных.