我从DataTables(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"
}
]
但是我的DataTables需要下一个结构:
{
"data": [
[
"99001091347",
"033999900 ",
" CDG1 MATRIZ",
" SC13 TIJUANA CENTRO",
"2015-05-23 09:13",
"1",
"2015-05-23 09:14:47",
"1",
"4",
"Aprobado"
]
]
}
我该如何解决这个问题?
答案 0 :(得分:1)
如果您需要保留关联数组以将其写入.json文件并回显DataTables的数据,那么您可以从数据数组中获取array values并为JSON输出创建一个新的https://www.dropbox.com/s/h60llp5zzkrodln/ezmall_2015-05-21-214647_p01a019-ph-4s-DN00AO6A-10.txt?dl=0 :
$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;
答案 1 :(得分:0)
请改用:
$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);
答案 2 :(得分:0)
试试这段代码
$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);
答案 3 :(得分:0)
请尝试以下代码。我插入了$ 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);