json_encode不希望给数据(或别的东西错了)

时间:2019-01-31 08:54:29

标签: php jquery

新这里和新编码(有点)。我正在通过制作实用的数据库来学习。部分代码是从教程,但我明白为什么和它的工作原理主要是,如果不是世界充满的答案,且大多在这里:)

通过这个特殊的问题,我相信我只是错过一些东西,需要重新审视,因为我被困了3天,不明白为什么它不是由我自己的工作。

问题::Fetch.php正在从sql中获取数据,并通过main.php(html代码)将其提供给echo $output。然后,我决定要创建自己的分页系统,也需要从fetch.php获取行数。所以和json_encode,以功能及数据类型:json到主叫方。它768,16工作,但没有获取任何数据。它工作得很好与其他矿井功能。

那我看不到什么?

P.S。我把警报阿贾克斯前,后和成功函数内。前两个触发。所以,我认为一些错误抓取并不愿意返回数据。

P.P.S。函数fetch_pasutijumi无法从ajax请求中的echo json_encode($out);中获取任何信息,而在dataType:'json',中使用echo ($outputs)(不使用数组)则无法工作,并且会返回html数据。

function fetch_pasutijumi(query, lim, from)
  {
    $.ajax({
    url:"fetch_pasutijumi.php",
    method:"POST",
    data:{query:query, lim:lim, from: from},
    dataType:'json',
    success:function(data)
    {
      result = data.outputs;
      $("#result").html(result);
    }
    });
  }


if(isset($_POST["query"]))
   {
      $lim = $_POST["lim"];
      $from = $_POST["from"];
      $search = $_POST["query"];
      $sql = "SELECT job.id AS id, job.red_nr as red_nr, job.name as name, date(job.date) as date, status.name as status_name FROM job LEFT JOIN status ON job.status_id = status.id WHERE job.red_nr LIKE '%".$search."%' OR job.name LIKE '%".$search."%' ORDER BY job.id DESC LIMIT ".$from.", ".$lim;
   }
   else
   {
     $sql = "SELECT job.id AS id, job.red_nr as red_nr, job.name as name, date(job.date) as date, status.name as status_name FROM job LEFT JOIN status ON job.status_id = status.id ORDER BY job.id DESC LIMIT ".$from.", ".$lim;
   } 
$outputs = '
  <table class="tbl_1">
        <tr class="tbl_head">
            <th>Red NR</th> 
            <th>Nosaukums</th>
            <th>Datums</th>
            <th>Status</th>
            <th><div name="" id=""></th>
            <th></th>
        </tr>
'; 
$query = $pdo->prepare($sql);
$query->execute();
$result = $query->fetchAll();
$total_row = $query->rowCount();


if($total_row > 0)
{
  $outputs .='
    <tr class="tbl_row">
      <td class="td_red_nr"><div id="rednew"><i class="fa fa-plus-square pogas new" id="new"/>Jauns darbs</div></td>
      <td class="td_name"><div id="namenew"></div></td>
      <td class="td_date"><div id="datenew"></div></td>
      <td class="td_status"><div id="statusnew"></div></td>
      <td class="td_buttons1">
      <i style="display:none;" class="fa fa-check-square pogas save" id="new"/>
      <i style="display:none;" class="fa fa-ban pogas cancel" id="new"/>      
      </td>
    </tr>
  ';

  foreach($result as $row)
 {

  $date = date_create($row["date"]);

  $outputs .= '
    <tr class="tbl_row" id="'.$row["id"].'">
      <td class="td_red_nr"><div id="red'.$row["id"].'">'.$row["red_nr"].'</div></td>
      <td class="td_name"><div id="name'.$row["id"].'">'.$row["name"].'</div></td>
      <td class="td_name"><div id="date'.$row["id"].'">'.date_format($date, 'j M Y').'</div></td>
      <td class="td_name"><div id="status'.$row["id"].'">'.$row["status_name"].'</div></td>
      <td class="td_buttons1">
      <i style="display:none;" class="fa fa-pencil-square pogas edit" id="'.$row["id"].'" />
      <i style="display:none;" class="fa fa-check-square pogas save" id="'.$row["id"].'" />
      <i style="display:none;" class="fa fa-ban pogas cancel" id="'.$row["id"].'" />
      <i style="display:none;" class="fa fa-trash pogas delete" id="'.$row["id"].'" />
      </td>
    </tr>
  ';
 }
 $outputs .='</table>';
 $out['outputs'] = $outputs;
 echo json_encode($out);
}
else
{
 $out['outputs'] = $outputs;
 echo json_encode($out);
}

1 个答案:

答案 0 :(得分:0)

真是...

问题是json_encode不喜欢PHP文件中的<html>标签!谁能想象得到?

我去掉了HTML标签,并开始工作,因为它应该是3天前。 存在与没有这样的问题echo $something到AJAX。