Javascript 我不是在使用JS查找数据库中的数据

Javascript 我不是在使用JS查找数据库中的数据,javascript,php,mysql,json,Javascript,Php,Mysql,Json,我正在做一个类练习,我必须使用XMLHTTPREQUEST和JSON,我们不能使用Jquery 问题是,我们必须通过自己创建的输入来寻找具体的数据。当我搜索时,我得到了这个错误,我不知道如何解决它 exercise1.js:146未捕获类型错误:无法读取null的属性“appendChild” at exercise1.js:146 在Array.forEach()处 在绘图台上(练习1.js:138) 在XMLHttpRequest.peticion.onreadystatechange(ex

我正在做一个类练习,我必须使用XMLHTTPREQUEST和JSON,我们不能使用Jquery

问题是,我们必须通过自己创建的输入来寻找具体的数据。当我搜索时,我得到了这个错误,我不知道如何解决它

exercise1.js:146未捕获类型错误:无法读取null的属性“appendChild” at exercise1.js:146 在Array.forEach()处 在绘图台上(练习1.js:138) 在XMLHttpRequest.peticion.onreadystatechange(exercise1.js:125)

我们必须将数据放入数组中,然后将其放入表中

// Añade todo el código que creas necesario para que la aplicación funcione.
// Debes respetar las funciones indicadas, programando en ellas la funcionalidad que se indica


// Usa el siguiente arrya global para almacenar los empleados cada vez que haces una consulta
var misEmpleados = new Array();

window.addEventListener("load", crearFormularioBusqueda);
// Usa la siguiente función para crear mediante DOM el contenido del formulario de búsqueda de empleados (id="formularioBusqueda")
// Deberá tener un input de tipo texto para apellidos, nombre, departamento y telefono, otro de tipo
// fecha para la fecha de alta y un botón para realizar la búsqueda mediante el manejador buscar definido más adelante.
// Identifica los input con un Label. 
function crearFormularioBusqueda() // 1 punto
{
    form = document.getElementById("formularioBusqueda");
    var salto = document.createElement("br");
    var input_codigo = document.createElement('input');
    var label_codigo = document.createElement('label');
    input_codigo.setAttribute("type", "text");
    input_codigo.setAttribute("placeholder", "Codigo");
    input_codigo.setAttribute("name", "codigo");
    form.appendChild(input_codigo);
    form.appendChild(salto);

    var input_nombre = document.createElement('input');
    input_nombre.setAttribute("type", "text");
    input_nombre.setAttribute("placeholder", "Nombre");
    input_nombre.setAttribute("name", "nombre");
    form.appendChild(input_nombre);
    form.appendChild(salto);

    var input_apellidos = document.createElement('input');
    input_apellidos.setAttribute("type", "text");
    input_apellidos.setAttribute("placeholder", "Apellidos");
    input_apellidos.setAttribute("name", "apellidos");
    form.appendChild(input_apellidos);
    form.appendChild(salto);

    var input_departamento = document.createElement('input');
    input_departamento.setAttribute("type", "text");
    input_departamento.setAttribute("placeholder", "Departamento");
    input_departamento.setAttribute("name", "departamento");
    form.appendChild(input_departamento);
    form.appendChild(salto);

    var input_telefono = document.createElement('input');
    input_telefono.setAttribute("type", "number");
    input_telefono.setAttribute("placeholder", "Telefono");
    input_telefono.setAttribute("name", "telefono");
    form.appendChild(input_telefono);
    form.appendChild(salto);

    var input_fecha = document.createElement('input');
    input_fecha.setAttribute("type", "date");
    input_fecha.setAttribute("placeholder", "Fecha Alta");
    input_fecha.setAttribute("name", "Fecha_alta");
    form.appendChild(input_fecha);
    form.appendChild(salto);

    var cargar = document.createElement("input");
    cargar.setAttribute("type", "button");
    cargar.setAttribute("value", "cargar");
    cargar.setAttribute("name", "cargar");
    cargar.setAttribute("title", "cargar");
    form.appendChild(cargar);
    form.appendChild(salto);
    cargar.addEventListener('click', function() {
        buscar();
    });



    var insertar = document.createElement("input");
    insertar.setAttribute("type", "button");
    insertar.setAttribute("value", "insertar");
    insertar.setAttribute("name", "insertar");
    insertar.setAttribute("title", "insertar");
    form.appendChild(insertar);
    form.appendChild(salto);




}


// Este manejador controlará el evento click del botón buscar creado previamente
// Se encargará de la consulta AJAX usando el archivo empleados_json.php del lado del servidor.
function buscar() // 1,5 puntos
{
    tablaSalida.innerHTML = '<tr><th>Codigo</th><th>Nombre</th><th>Apellidos</th><th>Departamento</th><th>Telefono</th><th>Fecha</th></tr>';

    var peticion = new XMLHttpRequest();

    peticion.open('GET', '../servidor/empleados_json.php');
    peticion.setRequestHeader("Content-type", "application/json");

    peticion.onreadystatechange = function() {
        if (peticion.readyState == 4 && peticion.status == 200) {
            misEmpleados = new Array();
            console.log(peticion.responseText);
            var respuesta = JSON.parse(peticion.responseText);
            for (var i = 0; i < respuesta.length; i++) {
                var codigo = respuesta[i].codigo;
                var nombre = respuesta[i].nombre;
                var apellidos = respuesta[i].apellidos;
                var departamento = respuesta[i].departamento;
                var telefono = respuesta[i].telefono;
                var fecha_alta = respuesta[i].fecha_alta;


                var elEmpleado = new Empleado();
                elEmpleado.setCodigo(codigo);
                elEmpleado.setNombre(nombre);
                elEmpleado.setApellidos(apellidos);
                elEmpleado.setDepartamento(departamento);
                elEmpleado.setTelefono(telefono);
                elEmpleado.setFechaAlta(fecha_alta);


                misEmpleados.push(elEmpleado);
            }
            dibujarTabla();
        }

    };
    peticion.send();
}


// La siguiente función dibujará en la tabla de salida (id="tablaSalida") el resultado de cada consulta a la base de datos
// Limpia las búsquedas anteriores para que no se acumulen.
function dibujarTabla() // 1 punto
{
    var tabla = document.getElementById("cuerpoTabla");
    misEmpleados.forEach(function(empleado) {
        var elemento = document.createElement("tr");
        elemento.innerHTML += ("<td>" + empleado.getCodigo() + "</td>");
        elemento.innerHTML += ("<td>" + empleado.getNombre() + "</td>");
        elemento.innerHTML += ("<td>" + empleado.getApellidos() + "</td>");
        elemento.innerHTML += ("<td>" + empleado.getDepartamento() + "</td>");
        elemento.innerHTML += ("<td>" + empleado.getTelefono() + "</td>");
        elemento.innerHTML += ("<td>" + empleado.getFechaAlta() + "</td>");
        tabla.appendChild(elemento);
    });
}
//我们需要一个有助于实现aplicación功能的组织。
//负责指标功能、指标功能规划
//美国国际劳工组织(Usa el siguiente arrya)在全球范围内为员工提供咨询服务
var misEmpleados=新数组();
窗口。addEventListener(“加载”,crearFormularioBusqueda);
//美国在就业公式化内容中的中介职能(id=“formularioBusqueda”)
//请将文本输入到apellidos、nombre、Departmento y telefono、otro de tipo
//这是一个很好的例子,它是一个很好的例子。
//识别los输入con un标签。
函数crearFormularioBusqueda()//1 punto
{
form=document.getElementById(“formularioBusqueda”);
var salto=document.createElement(“br”);
var input_codigo=document.createElement('input');
var label_codigo=document.createElement('label');
输入_codigo.setAttribute(“类型”、“文本”);
输入_codigo.setAttribute(“占位符”、“codigo”);
输入_codigo.setAttribute(“名称”、“codigo”);
表格.追加子项(输入\代码IGO);
表格.附属儿童(salto);;
var input_nombre=document.createElement('input');
输入_nombre.setAttribute(“类型”、“文本”);
输入_nombre.setAttribute(“占位符”、“nombre”);
输入_nombre.setAttribute(“名称”、“nombre”);
表单.appendChild(输入名称);
表格.附属儿童(salto);;
var input_apellidos=document.createElement('input');
输入_apellidos.setAttribute(“类型”、“文本”);
输入_apellidos.setAttribute(“占位符”、“apellidos”);
输入_apellidos.setAttribute(“名称”、“apellidos”);
表单.appendChild(输入\ apellidos);
表格.附属儿童(salto);;
var input_departmento=document.createElement('input');
输入_departmento.setAttribute(“类型”、“文本”);
输入_departmento.setAttribute(“占位符”、“departmento”);
输入_departmento.setAttribute(“名称”、“departmento”);
表格附录(输入部门);
表格.附属儿童(salto);;
var input_telefono=document.createElement('input');
输入_telefono.setAttribute(“类型”、“编号”);
输入_telefono.setAttribute(“占位符”、“telefono”);
输入_telefono.setAttribute(“名称”、“telefono”);
表格.appendChild(输入电话号码);
表格.附属儿童(salto);;
var input_fecha=document.createElement('input');
输入_fecha.setAttribute(“类型”、“日期”);
输入_fecha.setAttribute(“占位符”、“fecha Alta”);
输入_fecha.setAttribute(“名称”、“fecha_alta”);
表单。追加子项(输入法);
表格.附属儿童(salto);;
var cargar=document.createElement(“输入”);
setAttribute(“类型”、“按钮”);
setAttribute(“值”、“cargar”);
setAttribute(“名称”、“cargar”);
cargar.setAttribute(“标题”、“cargar”);
表格.儿童(卡加);
表格.附属儿童(salto);;
addEventListener('click',function(){
客车();
});
var insertar=document.createElement(“输入”);
setAttribute(“类型”、“按钮”);
setAttribute(“值”、“插入器”);
setAttribute(“名称”、“插入器”);
setAttribute(“标题”、“插入器”);
表格附录(插入者);
表格.附属儿童(salto);;
}
//Este manejador controlaráel evento点击botón buscar creado previamente
//这是阿贾克斯领事馆的一个网站,它使用json.php del lado del servidor。
函数buscar()//1,5个punto
{
tablaSalida.innerHTML='codigonombreapellidosdepartmentotelefonofecha';
var peticion=new XMLHttpRequest();
open('GET','../servidor/empleados_json.php');
setRequestHeader(“内容类型”、“应用程序/json”);
peticion.onreadystatechange=函数(){
if(peticion.readyState==4&&peticion.status==200){
misEmpleados=新数组();
console.log(peticion.responseText);
var respuesta=JSON.parse(peticion.responseText);
对于(变量i=0;i