将复杂文本传递给JQuery

时间:2017-07-26 01:12:29

标签: php jquery json ajax

我遇到了将JSON从PHP传递到jQuery的奇怪行为。

我有一些文章(Drupal CMS文章),我需要将它们推入环境中。 第一个解决方案有效,而文章是在页面加载时由PHP直接推送的。但由于我的工作适用于多个CMS,因此需要花费太多时间来加载它们,所以我需要使用ajax来加载一个特定的项目。

现在,jquery看起来像这样:

function doLoadArticles() {

for (var i = 0; i< projectdata[1].length; i++){
 $.ajax({
         data: {ip:projectdata[0]["ip"], login:projectdata[0]["login"], pass:projectdata[0]["pass"], db:projectdata[0]["db"], datatype:projectdata[1][i], aj:"aj", fc:"doLoadArticles"},
         type: "post",
         url: "dataFunnel.php",
         success: function(data){
           console.log(data);
           //console.log(jQuery.parseJSON( data )) ;

         }


         });  

}

}

然后,在PHP方面是这段代码:

function doLoadArticles(){

   $projdata;

  $conn = new mysqli($_POST['ip'], $_POST['login'], $_POST['pass'], $_POST['db']);
     // Check connection
     if ($conn->connect_error) {
     die("<div style='position:absolute; top:0;left:0; background:white;'>Connection failed: " . $conn->connect_error." <br><br>Plese try reload the page</div>");
     break;
     }
    else{}


     $sql = "Select node_revision.title, node_revision.nid, node.language, field_revision_body.body_value, field_revision_body.bundle, node_revision.timestamp  
      from field_revision_body 
      LEFT JOIN node_revision ON field_revision_body.revision_id=node_revision.vid 
      LEFT JOIN node ON field_revision_body.revision_id=node.vid 
      where field_revision_body.bundle='".$_POST['datatype']."' AND node_revision.status=1 AND node.language='cs' 
      ORDER BY field_revision_body.revision_id DESC LIMIT 10";
      $result = $conn->query($sql);

       if ($result->num_rows > 0) {
          // error_log("true"); 
         // output data of each row
            $j =0;
          while($row_a = $result->fetch_assoc()) {    


        $projdata[$j]["title"] = $row_a["title"] ;           
        $projdata[$j]["timestamp"] = $row_a["timestamp"] ;
        $projdata[$j]["bundle"] = $row_a["bundle"] ;
        $projdata[$j]["body_value"] = $row_a["body_value"];
        $projdata[$j]["nid"] = $row_a["nid"];
        $projdata[$j]["language"] = $row_a["language"];  

            $j++;

            }
      }

      echo json_encode($projdata);


}

问题是,数据存在,只有传递本身不起作用..(可能是因为一些buged转换?)

如果我这样做

echo print_r($projdata);

enter image description here 它会传递数据,但不能以可用的方式传递(忽略破碎的字符,这是另一个不相关的问题,数据是真的,这才是重要的)

然而,很明显,我需要它以我可以使用的形式,所以我需要json。 但是,如果我使用

echo json_encode($projdata);

它将通过一些&#34;什么都不打破&#34; enter image description here

那么我有什么错误我不知道,或者它实际上是PHP实现中的某种错误? (顺便说一句,我在MS IIS7上运行PHP 5.6)

或者其他任何方式,如何在没有json转换的情况下动态加载数据?

提前致谢

0 个答案:

没有答案