#php
#php
Вопрос:
Изначально $number = 0. После первого нажатия кнопки добавления значение становится 10. При повторном нажатии значение изменяется на 20. тогда 3-й раз равен 30, 4-й раз 40.
Ниже приведен мой код, кто-нибудь знает, как это исправить? Спасибо!
<?php
$number = 0;
if(isset($_POST['add'])){
$number = $number 10;
}
?>
<html>
<head>
</head>
<body>
<form method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
<?php echo $number; ?>
<input type="submit" name="add" value="Add" />
</form>
</body>
</html>
Ответ №1:
<input type="hidden" value="<?php echo $number ?>" name="number" />
Теперь измените $_POST[‘add’] на $_POST[‘number’]
И $number = $_POST[‘number’] 10;
Ответ №2:
Это фундаментально для работы PHP.
Между запросами нет «состояния». Это означает, что все будет забыто для каждого запроса. Поэтому, если вы хотите сохранить данные, вы должны где-то их хранить.
Несколько вариантов:
- База данных, такая как MySQL
- Сеанс
- Файл cookie
- Система кэширования, такая как APC
Ответ №3:
Прежде всего, ваш PHP нуждается в небольшой настройке:
<?php
$number = ($_POST['add'] != '') ? 0 : $_POST['add'];
$number = 10;
?>
<html>
Затем добавьте скрытый ввод над <input type="submit">
, например, так:
<input type="hidden" name="add" value="<?php echo $number; ?>">
Ответ №4:
Используйте переменную сеанса, чтобы сохранить значение для каждого запроса страницы. Простые значения переменных уничтожаются после завершения выполнения скрипта. Переменная сеанса сохранит значение.
Подробнее о сеансе
или используйте базу данных.
Ответ №5:
Вам нужно как-то сохранить значение. Либо вы используете базу данных, например MySQL, либо вы можете сохранить значение в переменной сеанса.