Я новичок в PHP и столкнулся с проблемой с моими кнопками в таблице. Когда кнопка нажата, она должна получить идентификационный номер, который извлекается из базы данных. У меня нет проблем с получением данных и передачей их на следующую страницу, используя …
<form action="ThisPage.php" method="post">
<td><input name="Submit" type="submit" value=<?php echo $OrderNumber; ?> ></td>
</form>
Все работает отлично, за исключением того, что переменная $ OrderNumber отображается на самой кнопке. Я хотел бы, чтобы кнопка отображалась как «Edit», а не переменная $ OrderNumber, которая отображается на прикрепленном изображении.
Как можно заставить кнопку сказать «Редактировать», но применить опубликованное значение значения $ OrderNumber? Мне не удалось найти способ выполнить передачу правильных и уникальных данных, а также отобразить кнопку, которая не смущает конечного пользователя.
Чтобы перейти на следующую страницу, я проверяю опубликованное значение в начале сценария PHP. Если есть опубликованное значение, в данном случае $ OrderNumber, то скрипт переносит переменные на следующую страницу, как показано …
<?php
if(!empty ($_POST['Submit']) )
{
$_SESSION['OrderID']=$_POST['Submit'];
header("location:NextPage.php");
exit;
}
?>
Но если нет опубликованных данных, страница запускается и показывает строки, представляющие массив записей базы данных. Все хорошо, за исключением этого ярлыка кнопки.
Попробуй это
<form action="ThisPage.php" method="post">
<input type="hidden" name="order_id" value="<?php echo $OrderNumber; ?>" />
<td><input name="Submit" type="submit" value="Edit" /> </td>
</form>
<?php
if(!empty ($_POST['Submit']) )
{
$_SESSION['OrderID']=$_POST['order_id'];
header("location:NextPage.php");
exit;
}
?>
Добавьте скрытое поле, потому что мы можем передать любое значение в форме без отображения, мы должны добавить этот метод.
Лучший способ — использовать второй элемент. Ваш код будет выглядеть так:
<form action="ThisPage.php" method="post">
<td>
<input type="hidden" name="ordernumber" value="<? =$OrderNumber; ?>" />
<input name="Submit" type="submit" value="Edit"/>
</td>
</form>
На следующей странице вы можете использовать $_POST['ordernumber']
, Чтобы использовать сессии, убедитесь, что session_start (); помещается перед извлечением или сохранением и убедитесь, что ничего не было напечатано на экране, и никакие заголовки не были выведены перед выполнением session_start ();
Хотя объяснение было коротким, ответ Бхавина Сасапры сработал отлично.
Ответ, предоставленный LPChip, был очень близок, но мой сценарий не работал;
<input type="hidden" name="ordernumber" value="<? =$OrderNumber; ?>" />
Я должен был использовать
value="<?php echo $OrderNumber; ?>" />
Я использую PHP 5, так что это может быть проблемой. Я обязательно уточню, если у меня есть еще один вопрос.
И получается, что вы можете открыть форму внутри таблицы.
Попробуй это:
<?php
session_start();
if(!empty ($_POST['Submit']) )
{
$_SESSION['OrderID'] = $_POST['Submit'];
header("location:NextPage.php");
}
?>