Вызов переменной GET в функции POST

Я хотел добавить $item_id в таблицу ставок после нажатия на кнопку. Но $item_id из $_GET нельзя передать в функцию $_POST. Неправильно ли вызывать такую ​​переменную?

Заранее спасибо за вашу помощь!

<?php 
include ('config/dbfunctions.php'); 
include ("helpers/validateBid.php");

$user_id = "";
$item_id = "";
$table= 'bid';
$allBids = selectAll($table);
$items = selectAll('item');

if (isset($_GET['item_id'])) {
    $itemInfoPost  = selectOne('item', ['item_id' => $_GET['item_id']]);
    $item_id = $itemInfoPost['item_id'];
  } 
  

if (isset($_POST['bid-btn'])){
  
        unset($_POST['bid-btn']);
        $_POST['user_id'] = $_SESSION['user_id'];
        $_POST['item_id'] = $item_id;   //$item_id cannot be called
        $bid_id = create($table, $_POST);   
              
        header('location: itemInfo.php?item_id='."$item_id"); 
}

HTML

      <form action = "itemInfo.php" method = "post">
        <div class = "place-bid-form">
          <h6>Place your bid</h6>
        </div>

        <div class = "place-bid-form-container">
          <div class = "bidamount-icon">RM</div>
          <input class = "placebidInput"  type = "number" name = "bid_amount">
        </div>

        <div class = "place-bid-form">
          <button type = "submit" name = "bid-btn" class = "btn bid-btn">Bid Now</button>
         
        </div>
      </form>

каков ваш метод формы?

Aqib Javed 21.03.2022 10:57

@AqibJaved Я использую сообщение

NatanataC 21.03.2022 10:59

var_dump($_POST) и проверьте все публикуемые переменные. Алос проверьте, есть ли 'item_id' или нет

Aqib Javed 21.03.2022 11:01

вы можете добавить в форму скрытое поле со значением item_id, если хотите, чтобы оно было в $_POST. Но и в строке запроса допустимый вариант.

TheNick 21.03.2022 11:03

Действительно непонятно, как вы вызвали этот код из формы! Но в этом коде $item_id будет СУЩЕСТВОВАТЬ только в том случае, если isset($_GET['item_id']) НО, если он НЕ СУЩЕСТВУЕТ, вы все равно пытаетесь ИСПОЛЬЗОВАТЬ ЕГО В $_POST['item_id'] = $item_id; Таким образом, просмотр вашей логики здесь не повредит

RiggsFolly 21.03.2022 11:18

Мы мало чем сможем помочь, если вы не покажете нам свой код страницы, которая вызывает этот скрипт.

RiggsFolly 21.03.2022 11:37

всем тоже спасибо за советы :)

NatanataC 21.03.2022 12:57
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
7
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пожалуйста, убедитесь, что атрибут действия вашей формы имеет такой идентификатор элемента:

<form id = "mybidform" action = "itemInfo.php?item_id=123456" method = "post">
    ...
</form>

или вы можете динамически установить идентификатор элемента с помощью JavaScript/jQuery, например, перед отправкой формы:

$('button[name = "bid-btn"]').click(function(e){
    e.preventDefault();
    let actionWithItemId = $("#mybidform").prop("action") + "?item_id = " + 123456;
    $("#mybidform").prop("action", actionWithItemId).submit();

});

If you don't use jQuery, I would post plain Javascript code also.

это действительно из-за атрибута действия формы! После его добавления я смог передать значение, спасибо! :)

NatanataC 21.03.2022 12:57

Другие вопросы по теме