php - json_encode 不想提供数据(或其他错误)
问题描述
这里是新手,也是编码新手(有点)。我通过制作实用的数据库来学习。部分代码来自教程,但我了解它的主要工作原理和方式,如果不是,世界上到处都是答案,其中大部分都在这里:)
有了这个特殊的问题,我相信我只是错过了一些东西,需要焕然一新,因为我被困了 3 天,不明白为什么它不能自己工作。
问题: Fetch.php 正在从 sql 中获取数据并将其交给main.php
(echo $output
html 代码)。然后我决定要制作自己的分页系统,并且也需要从中获取行数fetch.php
。所以和json_encode
函数和数据类型:json
调用者。它应该可以工作,但不能检索任何数据。它与我的其他功能一起工作得很好。
那我看不到什么?
PS 我在 ajax 之前和之后以及成功函数内部都放置了警报。前两个正在触发。所以我假设 fetch 有问题,它不想返回数据。
PPS 函数 fetch_pasutijumi 在没有ajax 请求和(不使用数组)的情况下不会从echo json_encode($out);
...中得到任何东西,并且它可以工作并返回 html 数据。dataType:'json',
echo ($outputs)
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);
}
解决方案
什么...
问题是json_encode
不知何故不喜欢<html>
php 文件中的标签!!!谁能想到呢?
我删除了两个 html 标签,它开始工作,因为它应该是 3 天前。echo $something
ajax没有这样的问题。
推荐阅读
- css - CSS:如何正确使用 display=flex?
- bash - 计算 Bash Shell 中每列的行数
- vb.net - 使用 sqlconnection 连接到服务器不起作用
- angular - 遍历从 API(Typescript)返回的 JSON“字典”
- android - 我需要使用android中的线程每秒增加一个数字
- azure-cosmosdb - Azure Cosmos db 性能问题以及如何改进
- sonarqube - 如何为 sonarqube 设置基本 url?
- php - 如何删除 ini_set() 一个会话在 PHP 7.3.9 中处于活动状态?
- sql-server - 使用带有 LIKE 的通配符从 SQL Server 检索数据
- perl - 根据逻辑添加行