如何在ajax调用中获取响应数据

时间:2013-08-07 04:41:34

标签: php ajax jquery

当我发布该表单时,我有一个带有两个字段的php文件(index.php),在javascript中我正在进行表单数据序列化并通过ajax将其发送到下一个php页面(results.php)。当我尝试在成功内打印数据时,它不会打印。以下代码。

<html>
<head>
    <title></title>
    <script src="../scripts/jquery-1.9.1.js"></script>
</head>
<body>
    <form method="post" name="index" id="indexform">
        <table border="1">
            <tr>
                <td>Name:</td>
                <td><input type="text" name="fname"></td>
            </tr>
            <tr>
                <td>Email:</td>
                <td><input type="text" name="email"></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" name="sendData"></td>
            </tr>
        </table>
    </form>
</body>
<script type="text/javascript">
    $( "#indexform" ).on( "submit", function( event ) {
          event.preventDefault();
          console.log( $(this).serialize() );
          var formdata = $(this).serialize();
         // alert(formdata);
          $.ajax({
                type:"POST",
                url:"result.php",
                dataType:'json',
                data:formdata,
                success: function(data){
                    alert(data);
                }
          });
        });
    </script>

在上面我无法打印成功回调中的数据。

4 个答案:

答案 0 :(得分:4)

试试这个

<script type="text/javascript">
        $( "#indexform" ).on( "submit", function( event ) {
              event.preventDefault();
              console.log( $(this).serialize() );
              var formdata = $(this).serialize();
              $.ajax({
                    type:"POST",
                    url:"result.php",
                    data:formdata,
                    success: function(html){
                        alert(html);
                    }
              });
            });
        </script>

在您的result.php页面

 $name=$_REQUEST['fname'];
    $email=$_REQUEST['email'];
    echo $name." ".$email;

答案 1 :(得分:2)

您正在将dataType设置为json,因此您必须确保只返回有效的json。

这意味着你无论如何都不能echoprint;你应该在数组或对象中收集数据,然后只输出一次,如:

echo json_encode($your_data);

答案 2 :(得分:0)

回显results.php页面内的内容。

例如:

echo "two fields $first_field , $second_field  successfully inserted. " ;

此内容作为ajax响应生成,并存储在数据变量中。

答案 3 :(得分:0)

Hello My Friends你的html代码在

<script type="text/javascript">
    $( "#indexform" ).on( "submit", function( event ) {
          event.preventDefault();
          console.log( $(this).serialize() );
          var formdata = $(this).serialize();
         // alert(formdata);
          $.ajax({
                type:"POST",
                url:"result.php",
                dataType:'json',
                data:formdata,
                success: function(data){
                    alert(data);
                }
          });
        });
    </script>

你的result.php文件代码在

<?php
    include 'db.php';
    $name=$_REQUEST['fname'];
    $email=$_REQUEST['email'];
    echo $name." ".$email;
?>

现在result.php文件将返回输入的名称和电子邮件地址。