在我的注册表单中,如果用户点击提交时需要显示验证消息,则所有框中的整个文本都会消失,这意味着它们必须重新开始!
我需要添加哪些PHP代码才能保留数据?
Username<span class="required">*</span>
<input name="user_name" type="text" id="user_name" minlength="5" >
Full Name<span class="required">*</span>
<input name="full_name" type="text" id="full_name" size="30"
Nationality <span class="required">*</span>
<select name="nationality" id="select8">
<option value="" selected></option>
<option value="Afghanistan">Afghanistan</option>
<option value="Albania">Albania</option>
</select>
<p align="center">
<input name="doRegister" type="submit" id="doRegister" value="Register">
</p>
EDIT:
我试过这个:
<?php
$email_field = ($_POST['usr_email']);
?>
Email<span class="required">*</span>
<input type="text" id="usr_email3" name="usr_email" value="<?php echo
$email_field; ?>" />
但它说未定义usr_email
答案 0 :(得分:2)
如HTTP规范中所述,HTTP是无状态的。这意味着,即使用户通过上一页到达页面,服务器也不知道这一点。每个请求都是全新的,因此它不能再发回以前的输出。
您必须从$ _POST中读取发送到表单的值,然后重新发送。例如:
<?php
//If the POST parameter has been send, set it to the $username variable. Otherwise make it empty.
$username = array_key_exists('username', $_POST) ? $_POST['username'] : '';
?>
<form name='f1' method='POST'>
<!-- Show username as its value, thus preserving state. -->
Name: <input type='text' value='<?php echo $username ?>' name='username' />
<input type='submit' value='Go' />
</form>
对于select
输入(通常是下拉列表),您需要在正确的选项上设置所选属性。就这样:
<?php
$gender = array_key_exists('gender', $_POST) ? $_POST['gender'] : 'unknown'; //Default to unknown
?>
<form name='f1' method='POST'>
<select name='gender'>
<!-- The $gender will be the value of each option. -->
<option <? if($gender == 'unknown') { ?> selected <? } ?> value='unknown'>Unknown</option>
<option <? if($gender == 'male') { ?> selected <? } ?> value='male'>Male</option>
<option <? if($gender == 'female') { ?> selected <? } ?> value='female'>Female</option>
</select>
<input type='submit' value='Go' />
</form>
但是我还是建议你买一本合适的书,或者阅读更多的教程。在您作为开发人员感觉更舒服之后,您可以自己探索并找到这些解决方案,就像我们在这里做过一次。
答案 1 :(得分:0)
<input name="user_name" type="text" id="user_name" minlength="5" value="<?php if(isset($_POST['user_name'])) { echo $_POST['user_name']; } ?>" >