PHP - Notice: Undefined index

 
Vista:
sin imagen de perfil
Val: 15
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Notice: Undefined index

Publicado por Angel (6 intervenciones) el 19/09/2020 14:10:15
Estoy realizando un proyecto con php, js, ajax y mysql. Al realizar la peticion ajax desde js recivo este error en el archivo modelo-contacos.php

Notice: Undefined index: telefono in C:\xampp\htdocs\Nueva carpeta\modelo-contactos.php on line 5

Notice: Undefined index: empresa in C:\xampp\htdocs\Nueva carpeta\modelo-contactos.php on line 6

Notice: Undefined index: nombre in C:\xampp\htdocs\Nueva carpeta\modelo-contactos.php on line 7
{"respuesta":"correcto","datos":{"nombre":"","empresa":"","telefono":""}}


modelo-contactos.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
 
 
require_once("conexionbd.php");
$nombre = filter_var($_POST['telefono'], FILTER_SANITIZE_STRING);
$empresa = filter_var($_POST['empresa'], FILTER_SANITIZE_STRING);
$telefono = filter_var($_POST['nombre'], FILTER_SANITIZE_STRING);
    echo("$nombre $empresa $telefono");
    try {
        $statement = $conexion->prepare("INSERT INTO contactos(usuario, empresa, telefono) VALUES (?, ?, ?)");
        $statement -> bind_param("sss", $nombre, $empresa, $telefono);
        $statement -> execute();
        $respuesta = array(
            'respuesta' => 'correcto',
            'datos' => array(
                'nombre' => $nombre,
                'empresa' => $empresa,
                'telefono' => $telefono
            )
            );
 
        $statement->close();
        $conexion->close();
    } catch (Exception $e) {
        $respuesta = array(
            'respuesta' => "Operacion fallida" + $e->getMessage()
        );
 
 
}
 
 
 
echo json_encode($respuesta);

validarformulario.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
const form = document.getElementById('añadircontactos').addEventListener("submit", leerformulario);
 
 
 
 
 
function leerformulario(evt) {
    const nombre = document.getElementById('nombre').value;
    const empresa = document.getElementById('empresa').value;
    const telefono = document.getElementById('telefono').value;
 
    var infocontacto = new FormData();
    infocontacto.append('nombre', nombre);
    infocontacto.append('empresa', empresa);
    infocontacto.append('telefono', telefono);
 
 
    if (nombre == "" || empresa == "" || telefono == "") {
        console.log('Todos los campos son obligatorios')
    } else {
 
        insertardb(infocontacto);
    }
    evt.preventDefault();
}
 
 
 
function insertardb(datos) {
 
    let xhr = new XMLHttpRequest();
    xhr.open('POST', 'modelo-contactos.php', true);
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4 && xhr.status === 200) {
            let respuesta = JSON.parse(xhr.responseText);
            console.log(respuesta);
            var añadirtareas = document.getElementById('añadirtareas');
            añadirtareas.innerHTML=`
            <td class="tabla">${respuesta.datos.nombre}</td>
            <td class="tabla">${respuesta.datos.empresa}</td>
            <td class="tabla">${respuesta.datos.telefono}</td>`
           ;
        }
 
    }
    xhr.send(datos);
}

index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!DOCTYPE html>
<html lang="es">
 
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="style.css">
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Agenda de contactos</title>
</head>
 
<body>
 
    <div id="header">Agenda de Contactos</div>
    <div id="añadircontacto">
        <h3 style="text-align: center;"> Añadir un contacto </h3>
        <p style="text-align: center;">Todos los campos son obligatorios</p>
        <form id="añadircontactos" action="#">
 
            <label for="nombre" class="etiquetas">Nombre:</label>
            <input id="nombre" class="campos" type="text" placeholder="Nombre Contacto">
 
            <label for="empresa" class="etiquetas">Empresa:</label>
            <input id="empresa" class="campos" type="text" placeholder="Empresa Contacto">
 
            <label for="Teléfono" class="etiquetas">Teléfono:</label>
            <input id="telefono" class="campos" type="text" placeholder="Teléfono Contacto">
 
            <button id="btnenviar">Enviar</button>
        </form>
    </div>
    <div id="contactos">
        <h3 id="contactosh3">Contactos</h3>
        <input id="browser" type="text" placeholder="Buscar tareas">
        <label id="numcontactos">1</label>
 
        <table id="tablatareas">
            <tr>
                <td class="tabla">NOMBRE</td>
                <td class="tabla">EMPRESA</td>
                <td class="tabla">TELEFONO</td>
                <td class="tabla">ACCION</td>
 
            </tr>
            <tr id="añadirtareas"></tr>
        </table>
 
 
    </div>
 
    <script src="validarformulario.js"></script>
 
</body>
 
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.066
Oro
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Notice: Undefined index

Publicado por joel (957 intervenciones) el 19/09/2020 20:43:29
Hola Angel, no veo como envías las variables desde AJAX al PHP....

Aquí veras un ejemplo de como hacerlo... https://www.lawebdelprogramador.com/codigo/JavaScript/5256-Funcion-para-utilizar-AJAX-sin-ninguna-framework.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Notice: Undefined index

Publicado por Angel (6 intervenciones) el 19/09/2020 23:28:37
esto es no?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function insertardb(datos) {
 
    let xhr = new XMLHttpRequest();
    xhr.open('POST', 'modelo-contactos.php', true);
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4 && xhr.status === 200) {
            let respuesta = JSON.parse(xhr.responseText);
            console.log(respuesta);
            var añadirtareas = document.getElementById('añadirtareas');
            añadirtareas.innerHTML=`
            <td class="tabla">${respuesta.datos.nombre}</td>
            <td class="tabla">${respuesta.datos.empresa}</td>
            <td class="tabla">${respuesta.datos.telefono}</td>`
           ;
        }
 
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.066
Oro
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Notice: Undefined index

Publicado por joel (957 intervenciones) el 20/09/2020 08:29:04
Si, si, perdona, mo me di cuenta de la variable datos que recibes...

Como te he comentado en el otro hilo, yo revisaría que realmente se envían las variables correctamente desde el inspector de elementos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar