保存表单的文本字段数据并将其重置为空白

时间:2014-04-05 08:48:10

标签: php forms reset

因此,对于Web应用程序,我需要使用HTML / PHP / MySQL编写新用户表单。 用户表单的要求包括:

  1. 发布自己
  2. 具有用户名,密码和确认密码文本字段
  3. 具有重置所有字段的重置按钮
  4. 如果两个密码字段不匹配,则报告错误,重置表单并保留用户名
  5. 如果已经使用了用户名,则报告错误并重置所有内容
  6. 如果一切正常,请将密码哈希并加盐,将数据添加到数据库,报告成功并重置表单
  7. 我目前正在研究#3和#4。这是我到目前为止(对不起,如果代码难以阅读):

    <form name="form" method="post" action="NewUser.php">
    
    User Name: <input name="userName" type="text" id="userName" value="<?php echo $_POST["userName"]; ?>"> <br>
    Password:  <input type="password" name="password" id="password"> <br>
    Confirm:   <input type="password" name="passwordConfirm" id="passwordConfirm">
    <?php
        if ($_POST["password"] != $_POST["passwordConfirm"]) {
            echo "Error: Passwords do not match.";
        }
    ?> <br>
    <input type="submit" name="submit" id="submit" value="Submit">
    <input type="reset" name="reset" id="reset" value="Reset">
    </form>
    

    现在,正如您所看到的,由于userName的默认值发生了变化,如果用户未通过密码检查然后尝试重置表单,则重置按钮实际上不会删除文本字段

    除了未来的问题,我可能会参与实施其他要求,我将如何解决我目前遇到的这个问题?

2 个答案:

答案 0 :(得分:0)

<input type="reset">将表单重置为加载时的状态。

要么坚持使用PHP,那么您需要将类型更改为submit并按if (isset($_POST["reset"]))检查用户是否要重置表单。

或者您使用Javascript:<input type="reset" onclick="document.getElementById('username').value='';" />

答案 1 :(得分:0)

你必须有两个文件..

index.html 
savedata.php

现在您可以通过jQuery,AJAX将表单数据从index.html发送到savadata.php。 只需按照以下步骤操作 将此脚本添加到已创建的index.html中。

  <script>
jQuery(function(){
   $('form').submit(function(e) {
      e.preventDefault();
      var username  = $("#userName").val();
      var password  = $("#password").val();
      var cPassword = $("#passwordConfirm").val();
// i am validating confirm password on client side but don't do it for security reasons
      if(password == cPassword) {

        // now send the Form Data to Server Side to save theme 
         $.post('savadata.php', {
            username:username,
            password:password  
         } , function(responce){
              if(responce == '1') {
               // form submitted successfully
                  // clear form fields 
                  $("#userName").val('');
                  $("#password").val('');
                  $("#passwordConfirm").val('');
                   alert('Data Saved...');
               } else {
                alert('there is an error to save data');
               }
          })

    } else {
      alert('Confirm password not matched');
    }
   }
});
</script>

savedata.php将在$_POST数组中重现数据 你可以对待这样的主题。

<?php
$username = $_POST['username'];
$password = md5($_POST['password']);
// Do what ever you want with savadata.php
// if Data Saved Successfuly echo '1'; javascript will take this flag as your data is saved.
?>