@tajfun_rt

Как автоматически подставлять значение в value?

Есть определенная форма
<form id="ajaxform" method="POST" enctype="multipart/form-data">
           <input id="num1" class="form-control" name="num1" type="number" value="<?php echo $num_count; ?>" placeholder=""/>
          <input id="num2" class="form-control" name="num2" type="number" placeholder="" autocomplete="off"/>
          .............
         <input type="submit" class="btn btn-primary" id="dataForm-submit" value="Сохранить">
</form>

Надо чтобы в первый input подставлялись цифры 001, 002, 003
Данные с input заносятся в таблицу базы данных, есть отдельный php для редактирования или удаления. При удалении надо, чтобы номер если был 003, то новый для новых данных стал 002.
Я сейчас делаю так:
try {
         include 'db.php';
         $sql = "SELECT COUNT(*) FROM $table_name";
         $res = $db->query($sql);
         $count = $res->fetchColumn();
         $count++;
         $abc=3;
         $num_count = str_pad($count,$abc,"0", STR_PAD_LEFT);
}
catch (PDOException $e) {
    echo "Ошибка!: " . $e->getMessage();
    die();
}

Т.е. подключаюсь к БД, из таблицы вытаскиваю количество строк, прибавляю +1, и добавляю нули , далее $num_count подставляю в value нужного input.
Это работает только тогда, когда страница перезагружается. А у меня форма не перегружается и старый номер остается.
Можно ли как-то решить это, пробовал с помощью $_SESSION счетчик считает, но если просто без заполнения формы страницу обновляешь то тоже прибавляет, с условиями через if что-то у меня не получилось. Пробовал через js слушать submit, но правильный код не могу сделать.
  • Вопрос задан
  • 170 просмотров
Решения вопроса 1
@tajfun_rt Автор вопроса
Все я решил вопрос.
Все дело было в том что на странице index вызывал с помощью include форму из файла form.php где был прописан код указанный выше, который подставляет значение в value, сама форма без action. Поэтому у меня оставались старые значение. После вызова формы следом идет вызов файла load.php (обработки POST и записи в БД), тоже без header.
Что сделал , в форме добавил action указал путь на load.php , а в файле load.php добавил header на страницу index.
Теперь все заработала как надо. Все спасибо!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Начинающие очень часто делают глупости. И записывать в базе данных количество строк в ней - одна из них.
Точно так же, как вы сейчас получаете количество через SELECT COUNT(*), это можно будет сделать в любой момент времени потом. И ничего никуда подставлять не надо.

Плюс $table_name выглядит еще одной глупостью. Имя таблицы не должно быть динамическим.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы