php - echo json_encode() 无法通过 ajax 调用工作

标签 php jquery ajax

我真的不知道我在这里错过了什么。我有这个脚本:

        <script type="text/javascript">
            function ServiceOffer(){
                var service_name  = $('#service_name').val(),
                    dataString = "service="  + service_name;
                    $.ajax({
                        type: "POST",
                        url:  "posted.php",
                        data:dataString,
                        success:function(data){
                            console.log(data);
                        }
                    });
            }

            $(document).ready(function(){   
                ServiceOffer();

                $(document).on('change','#service_name',function(){
                    ServiceOffer();                 
                });     
            });
        </script>

这是我的 posted.php 代码

    <?php

        $connect = mysql_connect('localhost','root','') or die('Unable to connect'.mysql_error());
        $select = mysql_select_db('hcs',$connect) or die('Unable to select database'.mysql_error());
        $service = $_POST['service'];

        $query = mysql_query("SELECT * FROM serviceoffer WHERE servicename = '$service'");
        $num = mysql_num_rows($query);  

        while($rows = mysql_fetch_array($query)){
            $data[] = $rows;
        }
        echo json_encode($data);

那我错过了什么?我认为我的代码中没有附加字符串,它在控制台中提供了字符串,而不是 json 编码数据。请帮忙!谢谢!

编辑:这是在我的控制台中返回的数据。

enter image description here

最佳答案

您有三个选择:

  1. dataType: 'json' 添加到 $.ajax 中的选项。
  2. header("Content-type: application/json"); 添加到 PHP 代码中。
  3. 在 success 函数中使用 console.log($.parseJSON(data))

请注意,如果您还使用了选项 1 或 2,则不应使用选项 3。在前两种情况下,jQuery 会自动解析 JSON,并且您将尝试解析结果,但这不会工作。

关于php - echo json_encode() 无法通过 ajax 调用工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20533048/

相关文章:

javascript - 使用 AJAX 进行多项选择并且没有提交按钮

javascript - 仪表车速表

php - 如何只返回 XPath 中的第一个匹配结果?

php - 根据 WooCommerce 中的用户元数据显示或隐藏送货方式

javascript - 变量和数字的运算

javascript - a4j :jsfunction for jsf2?

PHP for 循环运行超过它应该的

php - Mysql查询如果某列按顺序获取数据

javascript - 显示 JSON 返回的错误消息

Jquery Ajax在获取数据时加载图像