продолжайте добавлять значение в php

#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, либо вы можете сохранить значение в переменной сеанса.