【问题标题】:How to get the response data in ajax call如何在ajax调用中获取响应数据
【发布时间】:2013-08-08 07:46:09
【问题描述】:

当我发布该表单时,我有一个包含两个字段的 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>

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

【问题讨论】:

  • result.php的内容是什么?
  • 能否显示result.php页面
  • @James 我只是在 result.php 中打印一些 $_REQUEST
  • 只要放 result.php 的第一行
  • 我认为问题在于您将 json 指定为响应,设置 dataType: 'text' 并查看是否收到警报,同时检查浏览器控制台是否有任何错误

标签: php ajax jquery


【解决方案1】:

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

例如:

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

此内容作为 ajax 响应结果并存储在数据变量中。

【讨论】:

    【解决方案2】:

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

    这意味着你不能echo 或print 随便你;你应该在一个数组或对象中收集你的数据,然后只输出一次:

    echo json_encode($your_data);
    

    【讨论】:

    • 如何在php中获取响应值
    • @krrr25 你应该在这里发布你的 php 脚本。
    【解决方案3】:

    试试这个

    <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;
    

    【讨论】:

    • @krrr25 你试试这个
    • 如果我更改 dataType 其获取表单值。
    【解决方案4】:

    你好,我的朋友们,你的 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 文件将返回输入的姓名和电子邮件地址。

    【讨论】:

      猜你喜欢
      • 2019-09-06
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      相关资源
      最近更新 更多