我目前正在开发一个资产管理系统。我正在通过代码搜索商品。现在,当我绘制搜索结果时,我得到以下结果
语法错误:JSON输入意外结束
所以我去了网络选项卡,我的sql查询是和惊喜惊喜,它出现空白(空),这就是我也在同样的事情,因为这从来没有发生在我身上。
PHP语言
<?php
$value=$_POST['valor'];
$op=$_POST['opcion'];
if ($op==='B') {
include '../modelo/conexiondb.php';
try{
$sql=$conexion->prepare('SELECT fecha, nombre as clasificacion, tipo_de_bien, concepto, cantidad, n_bien, n_control, nombre_y_descripcion, departamentos as departamento, v_unitario, estado as estatus from bienes INNER JOIN clasificacion on bienes.clasificacion=clasificacion.id_d INNER JOIN concepto_mov_incorporados on bienes.concep_mov=concepto_mov_incorporados.codigo INNER JOIN departamentos on bienes.departamento=departamentos.id_depa INNER JOIN estatus on bienes.estatus=estatus.id where n_bien=?');
$sql->bind_param('s', $value);
$sql->execute();
$respuesta = $sql->get_result()->fetch_all();
$sql->close();
$conexion->close();
}catch(Exception $e){
//En caso de un error, tomar la excepcion
$respuesta = array('respuesta' =>$e->getMessage() );
}
echo json_encode($respuesta);
}
?>
JS系统
const d=document;
d.addEventListener('DOMContentLoaded', e=>{
detectarOpcion();
});
function detectarOpcion () {
let $input=d.getElementById('valor'),
$boton=d.getElementById('btn-buscar');
$boton.addEventListener('click', e=>{
let $select=d.getElementById('select').value;
const datos=new FormData();
datos.append('valor', $input.value);
datos.append('opcion', $select)
fetch('./modelo/nbien_busqueda_y_ncontrol.php', {
method: 'POST',
body: datos,
})
.then(res=>{return res.ok ?(res.json()) :Promise.reject(res);})
.then(data=>{ console.log(JSON.stringify(data));
let respuesta='';
for(let i in data ){
respuesta += `<tr>
<td>${data[i].fecha}</td>
<td>${data[i].clasificacion}</td>
<td>${data[i].tipo_de_bien}</td>
<td>${data[i].concepto}</td>
<td>${data[i].cantidad}</td>
<td>${data[i].n_bien}</td>
<td>${data[i].n_control}</td>
<td>${data[i].nombre_y_descripcion}</td>
<td>${data[i].departamento}</td>
<td>${data[i].v_unitario}</td>
<td>${data[i].estatus}</td>
</tr>`
}
d.querySelector('.contenedor-datatables').classList.remove('none');
d.querySelector('.tbody').innerHTML=respuesta;
})
.catch(err=>{
console.log(err);
})
.finally(()=>{
console.log('Esto se ejecutará independientemente del resultado de la Promesa Fetch')
})
})
$(document).ready(function(){
$('#bienes-busqueda').DataTable();
});
}
1条答案
按热度按时间h5qlskok1#
似乎存在以下问题:
for(let i in data )
在这种情况下,您应该使用类似下面的内容:for(let i = 0; i < data.length; i += 1)
希望这有帮助!