У меня есть простая веб-форма, где я хочу, чтобы форма запоминала последнюю запись в случае, если проверка выдает ошибку.
Общий процесс:
ввод данных в форму-- press submit -- data validation --
если ошибка, отобразить сообщение об ошибке, сохранить введенные данные в форме и не сохранять в DB | if no error --
хранилище в БД.
В настоящее время я использую HTML-рендеринг шаблона и хотел бы продолжать это делать.
Форма представляет собой обычный HTML, а часть формы выглядит следующим образом
<table class="form-table" id="addContact">
<tbody>
<tr>
<td>Eesnimi:</td>
<td><input type="text" id="fname" name="firstName" placeholder="Sinu eesnimi.." value= "{{ session.firstName }}"></td>
</tr>
В настоящее время я сохранил значения как переменные сеанса.Сеанс запускается из Index.php, а проверка и рендеринг шаблона HTML происходит в Index.php
.Форма хранится в переменных Add.html
Index.php
add.html
Session
следующим образом:
$_SESSION['firstName'] = $firstName;
$_SESSION['lastName'] = $lastName;
$_SESSION['phones'] = $phones;
В настоящее время форма простоотображение {{ session.firstName }}
, а не значение переменной сеанса.Я попытался установить переменную в шаблоне HTML, но это вызвало общую ошибку.
<?php
namespace {
use tpl\Scope;
function render_template($templatePath, $data = []) {
$node = new DOMDocument();
libxml_use_internal_errors(true);
$node->loadHTMLFile($templatePath);
tpl\traverse($node, new Scope($data));
return $node->saveHTML();
}
}
class Entry {
public $key;
public $value;
public function __construct($name, $key) {
$this->key = $name;
$this->value = $key;
}
public function __toString() {
return $this->key . "->" . $this->value;
}
}
И вызов render_template (путь к шаблону, данные здесь нажимают $ _SESSION)