PHP/AAJAX POST表单检索


PHP/AJAX POST form retrieval

我是PHP/AAJAX的新手,我正在尝试在不刷新页面的情况下获取表单值。我试过各种代码,但似乎都不起作用。要么什么都没发生,要么我收到一个未定义的索引通知。我试过使用isset()和empty(),但它们似乎也不起作用。感谢您的帮助。这在我的javascript函数中:

    {
        var hr = new XMLHttpRequest();
        var url = "parser.php";
        var fn = document.getElementById("firstname").value;
        var vars = "firstname="+fn;
        //document.write(vars);
        //open() method of XMLHttpRequest object
        hr.open("get",url,true);
        //to send url encoded variables in the request
        hr.setRequestHeader("Content-type", "application/w-www-form-urlencoded");
        hr.onreadystatechange = function () {
            if(hr.readyState == 4 && hr.status == 200){
                var returnData = hr.responseText;
                document.getElementById("status").innerHTML = returnData;
            }

        };
        //send data to PHP----wait for response to update status div
        hr.send(vars); //execute request
        document.getElementById("status").innerHTML = "processing...";

    }

这是我尝试过的另一种方法(代码在javascript函数中):

    {
        var name = document.getElementById('firstname').value;
        var dataString = "name"+name;
        $.ajax({
            type: "post",
            url: "validate.php",
            data: dataString,
            cache: false,
            success: function (html) {
                $('#result').html(html);
            }

    });
        return false;
    }

这是我的php文件,它将返回数据:

    <?php
         if(isset($_POST['firstname'])) {
         $name = $_POST['firstname'];
         echo 'Name:' . $name;
  }

这是输入标签:

    First name:<input id="firstname" name="firstname" type="text"><br>

我认为您的数据字符串不正确,您缺少一个"="

var dataString = "name"+name;
var dataString = "name="+name;

但你也可以尝试插入这样的对象:

$.ajax({
        type: "post",
        url: "validate.php",
        data: {"name":name},
        cache: false,
        success: function (html) {
            $('#result').html(html);
        }

将您的代码包装在文档就绪语句中,点击表单提交按钮即可触发您的代码,不要忘记将jquery库添加到页面中

$(function(){   
$('[type="submit"]').on('click',function(e){
  e.preventDefault();
  var name = $('#firstname').val();
        var dataString = {name:name};
        $.ajax({
            type: "post",
            url: "validate.php",
            data: dataString,
            cache: false,
            success: function (html) {
                $('#result').html(html);
            }
      });
});
});