1

When I want to add a user to the database, but the fields are not filled, the call works well, the page is not updated, only the form. When I filled in the fields and clicked add the page is updated. What is the problem?

It shows without an update print_r($_POST);

Thank you.

  <form action="" method="POST" id="reg">
       <input type="text"   name="First"  id="fn"  value="">
       <input type="text"   name="Last"   id="ln"  value="">
       <input type="submit" name="post_user" onclick="add_ajax_rquest()" value="Add" >
    </form>

    function add_ajax_rquest() {

      var fn = document.getElementById('fn').value,
          ln = document.getElementById('ln').value;

      var request = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');

      request.open("POST", 'regist.php', true);
      request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");


      request.send("&First="+ fn  + "&Last="+ ln); 

      request.onreadystatechange = function() {
        if (request.readyState == 4 && this.status == 200) {
          document.getElementById('txtHint').innerHTML = request.responseText;
        }
      }
    }

$name      = $_POST['First'];
$last_name = $_POST['Last'];    

echo $name;
echo $last_name;

if ( $name == '' && $last_name == '' ) {
        echo "Fields name is not filing!";
} else {

    $queryInsertName   = 
           "INSERT INTO 
                users ( `user_first_name`, 
                        `user_last_name` ) 
            VALUES ( '$name', '$last_name' )";

    $resultName  = mysqli_query($con, $queryInsertName);
}
print_r($_POST);}

1 Answers1

0

So you are doing an ajax request inside of a form that also does post? You are confusing yourself. If you do ajax, then don't do form, if you are doing form, don't do ajax. Example, if you are doing ajax, delete the form wrapper as you don't need it. Also, you are doing ajax in the worst possible way. Utilize JQUERY, from here: Post Values via AJAX with PHP and JQUERY