我有一个简单的xhtml表单,文本框询问用户的名字,ID,地址等。我必须使用php来验证数据。例如,在ID字段中,只允许6个数值,如果不是这样,则向用户显示错误,要求他们修复它。我想要做的是,当用户点击带有错误数据的提交时,我想在错误出现时将数据保留在字段中。我目前正在这样做: -
<td><label for="customerid">*Customer ID: </label></td>
<td><input type="text" value="
<?php if(($_POST['customerid'] != $id) || ($_POST["customerfname"] != $fname)
|| ($_POST["customerlname"] != $lname)){echo $_POST['customerid'];} ?>"
id="customerid" name="customerid"/>
我刚刚为所有文本框表达了这个声明,但是你可以想象如果我必须为10个盒子做这件事会有点复杂。我想知道这是否更容易实现。
粗体更新
<td> <select name="state" id="state" value="<?php echo (isset($_POST["state"]) ? : ''); ?>">
<option value="--">--</option>
<option value="ACT">ACT</option>
<option value="NSW">NSW</option>
<option value="NT">NT</option>
<option value="QLD">QLD</option>
<option value="SA">SA</option>
</select>
</td>
答案 0 :(得分:1)
这样的东西?
<input type="text" name="customerid" value="<?php echo (isset($_POST['customerid']) ? $_POST['customerid'] : ''); ?>">
更新 - 在重新生成表单之前运行您的支票
<?php
if(($_POST['customerid'] != $id) || ($_POST["customerfname"] != $fname) || ($_POST["customerlname"] != $lname))
{
// do nothing
}
else
{
$_POST['customerid'] = '';
}
?>
<input type="text" name="customerid" value="<?php echo (isset($_POST['customerid']) ? $_POST['customerid'] : ''); ?>">
答案 1 :(得分:0)
您可以在此处单独或以某种组合方式执行以下操作:
$_SESSION
数组中,如果已设置,则将它们回显到字段中。前<input type='text' value='<?php echo $_SESSION['myVal'] || '';?>'></input>
答案 2 :(得分:0)
这些陈述是什么?
$_POST['customerid'] != $id
你可以使用$ fields数组来存储标签$ errors数组以放入错误,然后只需
<?php $fields = array ('customerId' => '*CustomerID'); ?>
<?php // validation ?>
<?php foreach($fields as $name => $label): ?>
<td><label for="<?php echo $name ?>"><?php echo $label?>: </label></td>
<td>
<input type="text" value="" id="<?php echo $name ?>" name="<?php echo $name ?>">
<?php if(isset($errors[$name])): ?>
<?php echo $errors[$name] ?>
<?php endif; ?>
</td>
<?php endforeach; ?>
您还可以向表单添加html验证,以阻止用户通过向输入(<input required ... >
)或“模式”属性添加“required”属性来提交空表单