@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, но правильный код не могу сделать.
  • Вопрос задан
  • 174 просмотра
Решения вопроса 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 выглядит еще одной глупостью. Имя таблицы не должно быть динамическим.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
19 июн. 2024, в 06:58
15000 руб./за проект
19 июн. 2024, в 01:11
7000 руб./за проект
18 июн. 2024, в 23:10
15000 руб./за проект