我使用以下代码创建表单。表单有文本字段、复选框、下拉菜单和文本区域。如果表单填写正确,我可以在提交过程中显示文本字段值,并向未正确填写的字段显示错误消息。我想对复选框、下拉框和文本区域做同样的操作。如果复选框勾选"是",则如果表单在提交表单期间包含未填写或填写错误的字段,则表单应显示选中的复选框"是"。我保存的字段值如下:
$sender = $_POST["sendername"];
$name_title = $_POST["name_title"];
$pick_up_yes = $_POST["pick_up_yes"];
$pick_up_no = $_POST["pick_up_no"];
$special_req = $_POST["special_req"];
验证:
if(empty($sender)){
//Blank string, add error to $errors array.
$errors['sendername'] = "Please enter your name!";
}
if($name_title === none){
//if selected is none, add error to $errors array.
$errors['name_title'] = "Please select the title of your name!";
}
if (($pick_up_yes != yes) && ($pick_up_no != no)){
//Blank string, add error to $errors array.
$errors['pick_up_no'] = "Please let us know your airport pick up requirement!";
}
HTML表单:
<div class="form-label">Title</div>
<div class="form-input">
<select name="name_title" class="name-title-input">
<option value="none" selected="selected">Select Title</option>
<option value="Mr">Mr</option>
<option value="Mrs">Mrs</option>
<option value="Miss">Miss</option>
</select>
</div>
<div class="error-msg">
<?php if(isset($errors['name_title'])) { echo '<span style="color: red">'.$errors['name_title'].'</span>'; } ?>
</div>
<div class="form-label">Name</div>
<div class="form-input">
<input type="text" name="sendername" value="<?PHP if(!empty($errors)) { echo $sender;} ?>" />
<div class="error-msg">
<?php if(isset($errors['sendername'])) { echo '<span style="color: red">'.$errors['sendername'].'</span>'; } ?>
</div>
</div>
<div class="form-label">I need Airport pick-up</div>
<div class="form-input">
<input type="checkbox" name="pick_up_yes" value="yes" />Yes
<input type="checkbox" name="pick_up_no" value="no" />No
<div class="error-msg">
<?php if(isset($errors['pick_up_no'])) { echo '<span style="color: red">'.$errors['pick_up_no'].'</span>'; } ?>
</div>
</div>
<div class="form-label">Write us in details if you have any special requirement</div>
<div class="form-input">
<textarea name="special_req" value="<?PHP if(!empty($errors)) { echo $special_req;} ?>"></textarea>
</div>
只有当我再次看到表单时表单提交有错误时,我才会保存"sendername"值。当表单显示错误时,如何获取所选复选框、下拉列表和文本区域的保存/选定值?
我可能会做的一件事是更改
if($name_title === none){
至
if($name_title == "none"){
或者将其设为空值,并使用空引号。
还有
if (($pick_up_yes != yes) && ($pick_up_no != no)){
可以是
if ($pick_up_yes == ""){
如果您将值设置为1表示是,0表示无
要完成你想要的,比如
<?php
if($_POST['inputName'] == 'myInputValue'){
$checked = 'checked';
}
else{
$checked = '';
}
if($_POST['inputName2'] == 'myInputValue2'){
$checked2 = 'checked';
}
else{
$checked2 = '';
}
if($_POST['inputName3'] == 'myInputValue3'){
$selected3 = 'selected';
$selected4 = '';
}
else if($_POST['inputName3'] == 'myInputValue4'){
$selected4 = 'selected';
$selected3 = '';
}
else{
$selected = '';
}
?>
<input type='checkbox' <?= $checked;?> name='inputName' value='myInputValue'/>
<input type='checkbox' <?= $checked2;?> name='inputName2' value='myInputValue2'/>
<select name='inputName3'>
<option <?= $selected3; ?> value='myInputValue3'> pick </option>
<option <?= $selected4; ?> value='myInputValue4'> me </option>
</select>
<textarea name='inputName4'> <?= $special_req; ?> </textarea>
关键是知道您的值在输入中的填充位置,并回显以前通过表单发布的值:-)