Home >Web Front-end >JS Tutorial >JS+ajax implements php asynchronous form submission

JS+ajax implements php asynchronous form submission

php中世界最好的语言
php中世界最好的语言Original
2018-04-04 14:53:392053browse

This time I will bring you JS+ajax to implement php asynchronous submission form. What are the precautions for JS+ajax to implement php asynchronous submission form. The following is a practical case, let's take a look.

Many times it is necessary to submit forms asynchronously. When there are too many forms, gettingElementById one by one becomes very impractical

Of course, jquery can implement asynchronous submission of forms, and the jquery.form.js library It seems to be quite popular

But sometimes I don’t want to use additional libraries, so I think about writing it myself and using pure js to implement asynchronous form submission

The implementation is as follows (this example is submitted using POST method , using php as the server script)

HTM L file: test

<html>
<head>
  <script type="text/javascript" src="name_form.js"></script>
</head>
<body>
  <form action="process.php" id="ajax_form">
    Username:<input type="text" name="username" id="username"/><br>
    <input type="button" onclick="submitForm(&#39;name_form&#39;)" value="Submit">
  </form>
  <p id="tip"></p>
</body>
</html>

JS file: name_form.js

function createXmlHttp() {
  var xmlHttp = null;
   
  try {
    //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  } catch (e) {
    //IE
    try {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
   
  return xmlHttp;
}
 
function submitForm(formId) {
  var xmlHttp = createXmlHttp();
  if(!xmlHttp) {
    alert("您的浏览器不支持AJAX!");
    return 0;
  }
  
  var url = 'test.php';
  var postData = "";
  postData = "username=" + document.getElementById('username').value;
  postData += "t=" + Math.random();
  
  xmlHttp.open("POST", url, true);
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xmlHttp.onreadystatechange = function() {
    if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
      if(xmlHttp.responseText == '1') {
        alert('post successed');
      }
    }
  }
  xmlHttp.send(postData);
}

PHP file: test.php

<?php
  if(isset($_POST[&#39;username&#39;]) {
    echo &#39;1&#39;;
  }
?>

The principle of the above program is that first the user has used the test. Enter the username information in the html file, then use the name_form.js file to implement ajax to submit the form, and then perform the operation in the php file. Here we only determine whether the username has been set, that is, whether the username exists. If it exists, it will be output. 1; In addition, you can also operate the database (add, modify, etc.), and then judge the operation result. If the result is true, output 1, and judge the returned information in xmlHttp.responseText in the js file, because it only outputs 1, so The judgment is correct, and a prompt box pops up with the content 'post successful'. In this way, we successfully implemented the asynchronous submission of the PHP form using Ajax.

Note: Make sure there is no output before the php file echo, so that ajax can accurately obtain the returned information.

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

Jump to the login page immediately after Ajax+Session fails

How to deal with Session failure when accessed by ajax

The above is the detailed content of JS+ajax implements php asynchronous form submission. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn