我从datattables (https://datatables.net/)开始
我正在尝试用json源重新加载我的表。
从PHP代码:我想创建一个json数组:$fh = fopen("pv1_consultafolioTorre".".json", 'w');
while($row = mssql_fetch_array($query_result))
{
$a = array(
array(
'folio' => $row['folio'],
'MATNR' => $row['MATNR'],
'sucursalSolcitante' => $sucursalSolcitante,
'sucursalResponsable' => $sucursalResponsable,
'fechaSolicitud' => $row['fechaSolicitud'],
'cantidadSolicitada' => $row['cantidadSolicitada'],
'MATNR' => $row['MATNR'],
'fechaConfirmacion' => $row['fechaConfirmacion'],
'cantidadConfirmada' => $row['cantidadConfirmada'],
'tiempoConfirmacion' => $result,
'estatus' => 'Pendiente'
));
$jsonencoded = json_encode($a, 128);
print json_encode($a);
fwrite($fh, $jsonencoded);
}
fclose($fh);
,我得到了这个:
[
{
"folio": "99001091347",
"MATNR": "033999900 ",
"sucursalSolcitante": " CDG1 MATRIZ",
"sucursalResponsable": " SC13 TIJUANA CENTRO",
"fechaSolicitud": "2015-05-23 09:13",
"cantidadSolicitada": 1,
"fechaConfirmacion": "2015-05-23 09:14:47",
"cantidadConfirmada": 1,
"tiempoConfirmacion": 4,
"estatus": "Aprobado"
}
]
但是I数据表需要下一个结构:
{
"data": [
[
"99001091347",
"033999900 ",
" CDG1 MATRIZ",
" SC13 TIJUANA CENTRO",
"2015-05-23 09:13",
"1",
"2015-05-23 09:14:47",
"1",
"4",
"Aprobado"
]
]
}
我该如何解决这个问题?
如果您需要保留关联数组以便将其写入. JSON文件并回显数据表的数据,那么您可以从数据数组中获取数组值并为JSON输出创建一个新数组:
$json_data = array();
while($row = mssql_fetch_array($query_result))
{
$data = array(
'folio' => $row['folio'],
'MATNR' => $row['MATNR'],
'sucursalSolcitante' => $sucursalSolcitante,
'sucursalResponsable' => $sucursalResponsable,
'fechaSolicitud' => $row['fechaSolicitud'],
'cantidadSolicitada' => $row['cantidadSolicitada'],
'MATNR' => $row['MATNR'],
'fechaConfirmacion' => $row['fechaConfirmacion'],
'cantidadConfirmada' => $row['cantidadConfirmada'],
'tiempoConfirmacion' => $result,
'estatus' => 'Pendiente'
);
// write the array to a file if needed
$json_data[] = array_values($data); // Transforming for DataTables
}
// Build the final DataTables array
$data_tables_array = array(
'data' => $json_data
);
$jsonencoded = json_encode($data_tables_array);
echo $jsonencoded;
试试这个代码
$output['data'] = [];
$fh = fopen("pv1_consultafolioTorre".".json", 'w');
while($row = mssql_fetch_array($query_result))
{
$output['data'][] = array(
$row['folio'],
$row['MATNR'],
$sucursalSolcitante,
$sucursalResponsable,
$row['fechaSolicitud'],
$row['cantidadSolicitada'],
$row['MATNR'],
$row['fechaConfirmacion'],
$row['cantidadConfirmada'],
$result,
'Pendiente'
);
}
print $jsonencoded = json_encode($output, 128);
fwrite($fh, $jsonencoded);
用这个代替:
$fh = fopen("pv1_consultafolioTorre".".json", 'w');
$arr = Array();
while($row = mssql_fetch_array($query_result))
{
array_push($arr, array(
$row['folio'],
$row['MATNR'],
$sucursalSolcitante,
$sucursalResponsable,
$row['fechaSolicitud'],
$row['cantidadSolicitada'],
$row['MATNR'],
$row['fechaConfirmacion'],
$row['cantidadConfirmada'],
$result,
'Pendiente'
));
}
print $jsonencoded = json_encode(Array("data" => $arr), 128);
fwrite($fh, $jsonencoded);
fclose($fh);
请尝试下面的代码。我插入了$data = array('data' => $a);也改变了数组中的$row[]。您将得到想要的输出。
$fh = fopen("pv1_consultafolioTorre".".json", 'w');
while($row = mssql_fetch_array($query_result))
{
$a = array(
array(
$row['folio'],
$row['MATNR'],
$sucursalSolcitante,
$sucursalResponsable,
$row['fechaSolicitud'],
$row['cantidadSolicitada'],
$row['MATNR'],
$row['fechaConfirmacion'],
$row['cantidadConfirmada'],
$result,
'Pendiente'
)
);
$data = array('data' => $a); // added by me.
$jsonencoded = json_encode($data, 128);
print json_encode($jsonencoded);
fwrite($fh, $jsonencoded);
}
fclose($fh);