【问题标题】:Why is my JSON not working all of a sudden? [closed]为什么我的 JSON 突然不工作了? [关闭]
【发布时间】:2018-04-16 20:35:11
【问题描述】:

我刚刚将我的代码从一台计算机交换到另一台计算机,因为前一台计算机开始运行异常。现在,当我尝试使用我的网站时,它不会将任何信息拉入 div。我真的不确定这里发生了什么,它给了我一个错误

Uncaught SyntaxError: Unexpected token

这是我以前没有得到的。

<script>
        //$('#agent').change(function(){
            $(document).on('change', "#agent", function(event) { 

        //jquery
         var IEX_ID=$(this).val();


        if  (IEX_ID){
            //ajax call
            $.ajax({

                type:'POST',
                url:'GetAllData.php',
                cache:false,
                data: 'Fullname='+IEX_ID,
                success: function(data){





                    var obj = JSON.parse(data);

                    console.log(obj);



                    $('#IEX_ID').html(obj.IEX_ID);
                    $('#BalancedScore').html(obj.BalancedScore);
                    $('#CustomerEx').html(obj.CEPt);
                    $('#CEM1').html(obj.CEM1);
                    $('#CEM2').html(obj.CEM2);
                    $('#CEM3').html(obj.CEM3);
                    $('#CETlabel').html(obj.CET1);
                    $('#CET2label').html(obj.CET2);
                    $('#CET3label').html(obj.CET3);

             </script>

下面是它从中提取数组的 php。如果我做控制台日志,它会给我“尝试获取非对象的属性'num_rows'”这通常意味着我的查询有问题。我没有发现任何问题?它与另一台计算机上使用的代码完全相同。我只是复制所有文件并传输它们以查看是否可以解决任何问题。我不确定为什么在一台计算机上一切正常,但在这台计算机上却给了我这些错误。

    <?php

    $Fullname=$_POST['Fullname'];

    if(!empty($_POST['Fullname']))


  {



            $query=$conn->query("SELECT Supervisor, Fullname, IEX_ID, BalancedScore, CEPt, CEM1, CEM2, CEM3, FCRPt, FCRM1, FCRM2, AIMPt, AIMScore, AIMCnt, ProdPt, CET1, CET2, CET3, FCRT1, FCRT2, AYHT, AYHM, M_AYHT, AYHPt, Total, skill1, skill2, skill3, skill4, skill5, skill6, skill7, skill8, skill9, skill10, skill11, skill12, skill13, skill14, skill15, skill16, skill17, skill18, skill19, IncentiveMonth FROM CurrentSC WHERE IEX_ID = '".$Fullname."' order by Fullname ASC ");


            $rowCount=$query->num_rows;

            if($rowCount>0)


            {
                            while($row = mysqli_fetch_array($query))
                            {

                                            echo json_encode;

                   $output = array ("IEX_ID" => $row['IEX_ID'], "BalancedScore" => $row['BalancedScore'], "CEPt" => $row['CEPt'], "CEM1" => $row['CEM1'] , "CEM2" => $row['CEM2'], "CEM3" => $row['CEM3'], "FCRPt" => $row['FCRPt'], "FCRM1" => $row['FCRM1'] ,"FCRM2" => $row['FCRM2'],"AIMPt" => $row['AIMPt'],"AIMScore" => $row['AIMScore'],"AIMCnt" => $row['AIMCnt'],"ProdPt" => $row['ProdPt'],"CET1" => $row['CET1'] ,"CET2" => $row['CET2'],"CET3" => $row['CET3'],"FCRT1" => $row['FCRT1'],"FCRT2" => $row['FCRT2'],"AYHT" => $row['AYHT'],"AYHPt" => $row['AYHPt'],"M_AYHT" => $row['M_AYHT'],"AYHM" => $row['AYHM'],"Total" => $row['Total'],"skill1" => $row['skill1'],"skill2" => $row['skill2'],"skill3" => $row['skill3'],"skill4" => $row['skill4'],"skill5" => $row['skill5'],"skill6" => $row['skill6'],"skill7" => $row['skill7'],"skill8" => $row['skill8'],"skill9" => $row['skill9'],"skill10" => $row['skill10'],"skill11" => $row['skill11'],"skill12" => $row['skill12'],"skill13" => $row['skill13'],"skill14" => $row['skill14'],"skill15" => $row['skill15'],"skill16" => $row['skill16'],"skill17" => $row['skill17'],"skill18" => $row['skill18'],"skill19" => $row['skill19'],"IncentiveMonth" => $row['IncentiveMonth']);  






              echo json_encode($output);



                            }

                      }
         }


        ?>

【问题讨论】:

  • 你的data 不能是正确的 JSON 格式。发布吗?
  • 我怀疑您收到的是基于 HTML 的错误消息。在尝试处理之前尝试alerting 或console.logging data,并在此处发布开始位。
  • 如果我做控制台日志,它会给我“尝试获取非对象的属性 'num_rows'”这通常意味着我的查询有问题。我没有发现任何问题?它与另一台计算机上使用的代码完全相同。我只是复制所有文件并传输它们以查看是否可以解决任何问题。我不确定为什么在一台计算机上一切正常,但在这台计算机上却给了我这些错误。
  • 我还添加了 php 方面的东西。
  • 在 StackOverflow 上发布这样的问题之前,您需要检查 mysqli 错误。这是代码调试的第一步,也是最基本的一步。 $_POST['Fullname'] 的值是 Sean O'Connor 吗?他是个恶魔!我可以建议您使用带有占位符的 mysqli 准备好的语句吗?

标签: javascript php arrays json


【解决方案1】:

未捕获的 SyntaxError 说: JSON.parse () 的位置 2 处的 JSON 中的意外标记

这意味着 url:'GetAllData.php' 可能会返回 PHP 错误。这可能是数据库、PHP 更新、缺少函数等...当我的 PHP 提要格式错误时,我看到了同样的错误。

QED:检查 website.com/GetAllData.php 的结果,看看它们是否是正确的 JSON。

【讨论】:

  • 我回到另一台电脑上,一切正常。我只是将我的所有文件从那台计算机传输到这台计算机并重新开始。希望这行得通。我的意思是,如果它在那里工作,那么它肯定是正确的 JSON,由于某种原因它不能在这台计算机上工作。数据库确实更新了,但这应该不会有太大影响。只有日期发生了变化。
  • 你是对的。我的查询有问题。我仍然不知道具体是什么,所以我把它全部删除了,我正在重新写它。它当前正确加载。感谢您的帮助。
  • @Malsum 因为这个答案没有解决你的问题,所以你不恰当地授予了大绿勾。您可以随时删除它。该答案提供了有关如何调查的线索,但这不是答案-应该是评论。如果您删除绿色勾号,则可以在审核队列中适当处理此帖子。
  • 答案确实解决了我的问题。尽管应该是评论,但他回答了我想知道的内容。 “为什么我会收到这个错误”。他说它最有可能返回一个 PHP 错误。最后,自从我切换计算机后,有一个名为 Total# 的列,而 json 正在赶上 # 并发疯。我重命名了该列并对其进行了修复。他引导我朝着正确的方向解决我的问题。现在修好了。
猜你喜欢
  • 2022-07-03
  • 1970-01-01
  • 2022-10-08
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多