如果出现错误声明,则更容易在php中的文本字段中保留数据

时间:2014-05-05 13:13:04

标签: php html

我有一个简单的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>

3 个答案:

答案 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)

您可以在此处单独或以某种组合方式执行以下操作:

  1. 通过AJAX提交表格
  2. 在将其交付给服务器之前在Javascript中进行验证(这将捕获用户可能遇到的大多数错误)
  3. 将提交的值保留在$_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”属性来提交空表单