Я хотел добавить $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>
@AqibJaved Я использую сообщение
var_dump($_POST) и проверьте все публикуемые переменные. Алос проверьте, есть ли 'item_id' или нет
вы можете добавить в форму скрытое поле со значением item_id, если хотите, чтобы оно было в $_POST. Но и в строке запроса допустимый вариант.
Действительно непонятно, как вы вызвали этот код из формы! Но в этом коде $item_id
будет СУЩЕСТВОВАТЬ только в том случае, если isset($_GET['item_id'])
НО, если он НЕ СУЩЕСТВУЕТ, вы все равно пытаетесь ИСПОЛЬЗОВАТЬ ЕГО В $_POST['item_id'] = $item_id;
Таким образом, просмотр вашей логики здесь не повредит
Мы мало чем сможем помочь, если вы не покажете нам свой код страницы, которая вызывает этот скрипт.
всем тоже спасибо за советы :)
Пожалуйста, убедитесь, что атрибут действия вашей формы имеет такой идентификатор элемента:
<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.
это действительно из-за атрибута действия формы! После его добавления я смог передать значение, спасибо! :)
каков ваш метод формы?