Php 奇怪的jqueryajax问题

Php 奇怪的jqueryajax问题,php,jquery,ajax,post,preloader,Php,Jquery,Ajax,Post,Preloader,我使用jqueryajax从PHP页面获取一些数据,并在占位符中加载GIF图像,让用户知道结果正在进行中 $(".project").change(function(){ $(".custName").html("<img src='/admin/images/ajax-loader.gif' />"); $(".projectDesc").html("<img src='/admin/images/ajax-loader.gif

我使用jqueryajax从PHP页面获取一些数据,并在占位符中加载GIF图像,让用户知道结果正在进行中

$(".project").change(function(){
            $(".custName").html("<img src='/admin/images/ajax-loader.gif' />");
            $(".projectDesc").html("<img src='/admin/images/ajax-loader.gif' />");
            var project_num=$(this).val();
            var dataString = 'project='+ project_num;

                $.ajax
                    ({
                        type: "POST",
                        url: "customerfilter.php",
                        dataType: "json",
                        data: dataString,
                        cache: false,
                        success: function(data)
                        {
                            $(".custName").html(data.message1);
                            $(".projectDesc").html(data.message2);
                        }
                    });


        });

$result是一个mysql_查询

我在将类型设置为JSON时遇到了类似的问题。如果PHP没有返回100%正确的JSON,那么jQuery将不会运行
success
函数

所以试试这个:

  • console.log(“success was called”)
    语句放在
    success
    方法中,以便您可以查看何时调用它

  • 通过使用
    JSON\u encode
    函数,确保您的PHP代码正在创建正确的JSON

  • 发布您的任何新信息,以便我们可以继续帮助您调试:-)


  • 我在将类型设置为JSON时遇到了类似的问题。如果PHP没有返回100%正确的JSON,那么jQuery将不会运行
    success
    函数

    所以试试这个:

  • console.log(“success was called”)
    语句放在
    success
    方法中,以便您可以查看何时调用它

  • 通过使用
    JSON\u encode
    函数,确保您的PHP代码正在创建正确的JSON

  • 发布您的任何新信息,以便我们可以继续帮助您调试:-)


  • 该响应不是有效的json。试试这个:

    
    $output = Array();
    while ($row = mysql_fetch_array($result)) {
                    $output[] = Array(
                        "message1" => $row['cust_name'],
                        "message2" => $row['description'],
                    );
    }
    echo json_encode($output);
    
    编辑:此外,您还必须更改“成功”javascript回调:

    
    success: function(data) {
      $(".custName, .projectDesc").empty();
      for(var x in data) {
         $(".custName").append(data[x].message1);
         $(".projectDesc").append(data[x].message2);
      }
    }
    

    该响应不是有效的json。试试这个:

    
    $output = Array();
    while ($row = mysql_fetch_array($result)) {
                    $output[] = Array(
                        "message1" => $row['cust_name'],
                        "message2" => $row['description'],
                    );
    }
    echo json_encode($output);
    
    编辑:此外,您还必须更改“成功”javascript回调:

    
    success: function(data) {
      $(".custName, .projectDesc").empty();
      for(var x in data) {
         $(".custName").append(data[x].message1);
         $(".projectDesc").append(data[x].message2);
      }
    }
    

    向我们展示返回的数据以及可能生成它的php。检查“success”回调是否有效。例如,将console.log放入。当响应不是有效的json时,回调没有被正确调用。您是否使用了调试器单步执行“成功”回调?您的PHP返回
    内容类型:application/json
    头?如果您在success函数中执行了
    console.log(data)
    ,您是否会看到类似这样的内容:
    {message1:'asd',message2:'qwe'}
    ?该响应不是有效的json。请向我们显示返回的数据以及生成该数据的php。检查“success”回调是否有效。例如,将console.log放入。当响应不是有效的json时,回调没有被正确调用。您是否使用了调试器单步执行“成功”回调?您的PHP返回
    内容类型:application/json
    头?如果您在success函数中执行了
    console.log(data)
    ,是否会看到类似这样的内容:
    {message1:'asd',message2:'qwe'}
    ?该响应不是有效的json。“success”回调现在运行?抱歉,因为您添加了jQuery…太棒了!非常感谢“成功”回调现在运行?抱歉,因为您添加了jQuery…太好了!非常感谢