Вопрос:

использовать $ _GET ['']; значение внутри $ _POST [''] и отправить его на ту же страницу и отобразить на той же странице

php html mysql forms

50 просмотра

2 ответа

32 Репутация автора

я новичок в php и во время практики я столкнулся с проблемой. На самом деле у меня есть два файла index1.php и index2.php. в index1.php у меня есть ссылка с уникальным идентификатором, как

<a href="index2.php?companyid=<?php echo $row('company_id');?>>details</a>

я получил это значение в index2.php как

if(isset($_GET['companyid'])){
  $companyid = $_GET['companyid'];
 }

Теперь у меня есть форма поиска в index2.php как

<form method="POST" action="index2.php">
  <input type="text" name="search">
  <button type="submit" name="submit">submit</button>
</form>

Теперь при нажатии кнопки я хочу, чтобы результаты поиска отображались на той же странице, что и

'index2.php?companyid=$companyid'

но некоторые, как, если я пытаюсь использовать $_POST['submit'];на той же странице, это приводит меня к index2.php и вместо, index2.php?companyid=$companyidа также он выдает ошибку, как undefined index of $companyidбудто я не использую, $_POST['submit'];и echo $companyid;это дает значение и работает нормально. все, что я хочу, это использовать $companyid' value inside ``$_POST['submit'];как и отобразить результат в том же URL, как и раньше

if(isset($_POST['submit']){
  $companyid //throws an error index of company id
}

любая помощь будет оценена

Автор: Orzoon Источник Размещён: 01.01.2018 01:23

Ответы (2)


0 плюса

634 Репутация автора

Как отметил Джош в комментариях, PHP не может запомнить ваш предыдущий GETзапрос, но это легко можно решить, изменив actionатрибут formэлемента. Делая это, вы можете передать предыдущие данные. Это будет выглядеть примерно так:

<form method="POST" action="index2.php?companyid=<?php echo $companyid;?>">
    <input type="text" name="search">
    <button type="submit" name="submit">submit</button>
</form>

Таким образом , вы будете перенаправлены index2.phpс параметрами URL , присутствующих и вы будете иметь возможность получить как searchи с companyidпомощью $_POSTи $_GETили использовать $_REQUESTдля обоих.

Автор: yarwest Размещён: 01.01.2018 01:39

0 плюса

68 Репутация автора

Решение

Во-первых, похоже, что вы не используете идентификатор компании в самой форме, поэтому он не будет представлен как часть POST. Вы могли бы использовать:

<form method="POST" action="index2.php">
  <?php if (isset($companyid)): ?>
    <input type="hidden" name="companyid" value="<?= $companyid; ?>">
  <?php endif; ?>
  <input type="text" name="search">
  <button type="submit" name="submit">submit</button>
</form>

Но вам, вероятно, также необходимо изменить свою логику на:

if(isset($_POST['companyid'])){
  $companyid = $_POST['companyid'];
}else if(isset($_GET['companyid'])){
  $companyid = $_GET['companyid'];
}
Автор: Cliff Brown Размещён: 01.01.2018 01:40
Вопросы из категории :
32x32