2013-11-30 6 views
1

В моей форме я пытаюсь передать acad_id на страницу academy_view.php. После отправки формы я пытаюсь добавить acad_id к URL-адресу. Таким образом, я могу использовать GET в academy_view.php, чтобы вытащить записи из mysql db. Но каждый раз после отправки почтовый url имеет пустое поле для id.Передача значений формы с одной страницы на другую

academy_create.php

$acad_id = $_POST['acad_id']; 
<form action="academy_view.php?id=<?php echo $acad_id; ?>" method="POST"> 
     Name: <input type="text" name="name"></br> 
     Academy ID: <input type="text" id="acad_id" name="acad_id"></br> 
<input value="SAVE" name="submit" type="submit"> 
</form> 

academy_view.php

if (isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 0){ 
       // query db 
      $acad_id = $_GET['id']; 

//Some Code 

} 

После отправки URL показывает идентификатор пустой: http://www.example.com/academy_view.php?id=

+1

Вы подаете acat_id дважды, в качестве параметра GET и в виде значения POST. Используйте только POST со скрытым полем: '' – erny

+0

@erny как я могу извлечь '$ acad_id' из' academy_view.php '? –

+1

Вы отправляете с "academy_create.php" в "academy_view.php", поэтому это будет '$ acad_id = $ _POST ['acad_id'];'. если вы не беспокоитесь, используйте переменную $ _REQUEST вместо $ _GET и $ _POST. – erny

ответ

2

Вы можете изменить ваш код, чтобы использовать POST следующим

<form action="academy_view.php" method="POST"> 
    Name: <input type="text" name="name"></br> 
    Academy ID: <input type="text" id="acad_id" name="id"></br> 
<input value="SAVE" name="submit" type="submit"> 
</form> 

И

if (isset($_POST['id']) && is_numeric($_POST['id']) && $_POST['id'] > 0){ 
      // query db 
     $acad_id = $_POST['id']; 

//Some Code 

} 
+0

POST ничего не скрывает, его легко просматривать в заголовке. Используйте POST, если вы не хотите что-то закладок (например, сохранить форму), или содержимое будет большим, чтобы вписаться в GET. Он не обеспечивает безопасность. – Casey

+0

Я все еще не получаю ничего, что передавалось в 'academy_view.php' –

+0

, вы изменили поле имени Академии в коде html? (Фрагмент кода 1) – rjv

0

Способ транспортировки значения (состояния) от одной страницы к другой через параметры запроса, например:

  • URL, например, параметры GET
  • Запрос тела, как форма сообщения ,

Предположим, что вы в academy_create.php и уже имеют параметр запроса (GET или POST) acad_id, т.е. URL = «http://example.com/academy_create.php?acad_id=1» или поле формы, вы можете сделать следующее, если не хотите, чтобы пользователь, чтобы заполнить «acad_id» (это уже определено):

... 
$acad_id = $_REQUEST['acad_id']; 
...  
<form action="academy_view.php" method="POST"> 
    Name: <input type="text" name="name"></br> 
    Academy ID: <input type="hidden" id="acad_id" name="acad_id" value="$acad_id"></br> 
<input value="SAVE" name="submit" type="submit"> 
</form> 

Если вы хотите, чтобы значение переменно пользователем, просто измените «скрытый» на «текст».

Если вы хотите, чтобы значение было только для чтения, установите для ввода значение readonly.

Теперь в academy_view.php вы можете получить значение снова:

$acad_id = $_REQUEST['acad_id']; 
Смежные вопросы