我有一个简单的Web表单,希望验证记住错误时,该表单要记住最后一个条目。
一般过程是:
如果输入错误,则以-- press submit -- data validation --
格式输入数据,如果显示错误消息,则将输入的数据保留在表单上,并且不存储在DB的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)