Ajax没有正确获取数据

时间:2015-09-22 09:19:04

标签: javascript jquery ajax

HY

我正在尝试使用ajax提交数据然后获取它。我试过这段代码..

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
    <link rel="stylesheet" href="css/bootstrap.css"/>

</head>

<body>
<div>

    <form action="voteupdown.php" id="form" method="post">
        <input type="text" name="fname" id="fname" class="form-control"/><br/>
        <input type="text" name="lname" id="lname" class="form-control"/><br/>
        <input type="submit" name="submit" id="submit" value="Submit"/>
    </form>

    <div id="result">

    </div>

</div>



<script src="js/jquery.js"></script>
<script>
    $(document).ready(function(){
        $('#form').submit(function(){
           return false;
        });
        $("#submit").click(function(){
            $.get(("voteupdown.php"), function (data) {
                $("#result").html(data);
            });
        });
    });

</script>
<script src="js/bootstrap.js"></script>
</body>
</html>

voteupdown.php

<?php

    $name = $_POST['fname'];
    $lname = $_POST['lname'];
echo $name;

?>

当我在voteupdown.php中简单echo " hy this is test"时,代码将起作用,但当我尝试回显名字和姓氏时,它将显示以下错误。

Notice: Undefined index: fname in G:\xampp\htdocs\Questiona-Step1\voteupdown.php on line 3

Notice: Undefined index: lname in G:\xampp\htdocs\Questiona-Step1\voteupdown.php on line 4

任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:1)

您的服务器端脚本期望将数据发布到它,您的javascript正在发送GET请求。此外,您的GET请求实际上并不包含任何数据。

假设您希望保持服务器端期望POST,您应该按照以下方式更改您的javascript

$("#submit").click(function(){
        var fname = $('#fname').val();
        var lname = $('#lname').val();
        $.post("voteupdown.php"), {
           fname: fname,
           lname: lname
        },function (data) {
            $("#result").html(data);
        });
    });

答案 1 :(得分:1)

您的代码无法运行,因为您的PHP需要$_POST变量中的数据。
您还没有将任何表单数据发布到PHP文件中 请尝试以下方法:

$('body').on('submit', '#form', function(event) {

    event.preventDefault();

    var formData = $(this).serialize();

    $.ajax({
        url: 'voteupdown.php',
        type: 'post',
        data: formData,
        success: function(result) {
            $('#result').html(result);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            # error handling here
        }
    });

});

答案 2 :(得分:0)

在表单提交电话中使用此代码:

$("#submit").click(function(){

        $.post(("voteupdown.php"), 

        { 
       fname: $("#fname").val(), 
           lname: $("#lname").val() 
    },

        function (data)
        {
            $("#result").html(data);
        });
});

答案 3 :(得分:0)

You are using $.get method for ajax and you are trying to get val by $_POST. because of this you got this error. Try This hopefully it will help you:

$.post( "voteupdown.php", { fname: $("#fname").val(), lname: $("#lname").val() }, function( data ) {
  $("#result").html(data);
});

or if you wants to get response in json format than use this

$.post( "voteupdown.php", { fname: $("#fname").val(), lname: $("#lname").val() }, function( data ) {
  $("#result").html(data);
}, "json");