AJAX - Pasar arrays de ajax a php

 
Vista:

Pasar arrays de ajax a php

Publicado por Emmanuel Gomez (4 intervenciones) el 12/06/2019 23:54:27
Buenas tardes ya que tengo un formulario del cual quiero pasar ciertos datos y un array, me podrían apoyar con este tema.

Este es el formulario

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
56
57
58
59
echo '<div class="panel-body" >';
    echo '<div class="modal-dialog modal-sm">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" onclick="javascript:window.location.reload()">&times;</button>';
 
            echo'<center>	<h4 class="modal-title">Registro</h4>
                <form style="height: 400px; width: 90%; ;" id="win"   method="post"  enctype="multipart/form-data">
                    <label>Nombre del Consultor:</label>
                    <div style="height: 50px; width: 100%; ">							
                        <input type="text" name="nombre" class="form-control col-xs-5  input-lg">
                    </div>

                    <label>Numero de Empleado:</label>
                    <div style="height: 50px; width: 100%; ">							
                        <input type="text" name="numero" class="form-control col-xs-5  input-lg" required="required">
                    </div>

                    ';
 
 
                    echo '<label>Proyecto:</label>
                        <div style="height: 70px; width: 100%; margin-bottom: 0px;">
                        <select style="display: inline-block;" name="proyecto" class="form-control col-xs-5  input-lg">';
 
                             $query = mysqli_query($db, "SELECT * from proyecto") or die (mysql_error());
                             while ($resultado=mysqli_fetch_array($query)) {
                                    echo '<option value="'.$resultado['id'].'">'.$resultado['nombre'].'</option>
                                    ';
                                }
                        echo '</select>';
 
                    echo'</select>
                    </div>


                    <label>Fecha de Ingreso:</label>	
                    <div style="height: 70px; width: 100%; margin-top: -5px;">
                        <input type="date" style="display: inline-block;" name="fecha"  class="form-control col-xs-5 input-lg" required="required">
                    </div>


                <div class="col-lg-6 col-sm-6 col-12">
                    <label class="btn btn-primary">
                        Documentos <input type="file"  name="archivo[]" id="archivo[]" multiple="true" accept="application/pdf, application/vnd.ms-excel, application/msword" required="required" style="display: none;">
                    </label>
                </div>  


                    <div style="height: 70px; width: 100%; ">
                    <button id="btn" type="submit" class="btn btn-primary">Guardar</button>
                    </div>
                </form>

            ';
            echo '</center></div>
        </div>
    </div>';
echo '</div>';


Este es el Ajax

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<script type="text/javascript">
$('body').ready(function () {
  */
    $('#win').on('submit', function (e) { // Nos suscribimos al evento "submit" de nuestro formulario el cual se lanzara al hacer click en un boton del tipo submit
 
        var dataToSend =  $(this).serialize(); //Aqui ya tenemos el contexto del formulario por eso usamos $(this)
 
        // Despues hacemos el $.ajax
        $.ajax({
            method: 'POST', // Metodo a utilizar POST, GET, etc...
            url: 'agregarsied.php', // URL de la pagina que recibira la petición
            data: dataToSend, // Aqui van los datos a enviar, en este caso serializamos los campos del formulario y los asinamos a esta variable por eso solo ponemos esta variable
            success: function (data) {
                if(data.length==0)
                {
                    Swal.fire({
                        type: 'success',
                        title: 'Ha sido Registrado',
                        showConfirmButton: false,
                        timer: 2500
                    }).then(function() {
                        //alert('wi');
                        window.location.href="sied.php";
                        console.log(data);
                    });
 
                    //Swal({type: 'success', title: 'Bienvenido', showConfirmButton: false, timer: 1500},function(){window.location="pro_esp.php";});
                }
                    else if(data.length == 1)
                {
 
                    Swal.fire("Error","El numero de empleado ya existe","error").then(function() {
                        //alert('wi');
                        window.location.href="sied.php";
                        console.log(data);
                    });
                    console.log(data);
 
                } else if(data.length == 2)
                {
 
                    Swal.fire("Error","El campo de Documentos esta vacio","error").then(function() {
                        //alert('wi');
                        window.location.href="sied.php";
                        console.log(data);
                    });
                    console.log(data);
 
                }
                else
                {
 
                    Swal.fire("Error","No se puedo guardar la informacion","error").then(function() {
                        //alert('wi');
                        window.location.href="sied.php";
                        console.log(data);
                    });
                    console.log(data);
 
                }
                // swal ( "¡ Aquí está el título! " , " ... ¡y aquí está el texto! " ) ;
                //console.log(data); // Este callback  responde como un status 200: OK, y lo que imprimas en php lo cachara en la variable data.
            },
            error: function (data) {
                Swal.fire("ERROR","Ocurrió un error al actualizar  la Información","error");
                console.log(data);
                // Este callback  responde con status de error, e.g. 400, 404, 500, etc...
            }
        });
 
 
        return false;
        // Este return es para que no se lanze el evento submit al navegador y no brinque de pagina, si no que se queda esperando la respuesta de nuestra llamada ajax.
    });
 
});


Y este es el php o una parte de ello

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
$nombre=$_POST['nombre'];
$numero=$_POST['numero'];
$proyecto=$_POST['proyecto'];
$fecha=$_POST['fecha'];
$archivo = $_FILES['archivo'];
 
if (isset( $_FILES['archivo'])) {
 
 
    $correo = $_SESSION['login_user'];
    $query = mysqli_query($db, "SELECT * from usuarios where correo = '$correo'") or die (mysql_error());
    $res=mysqli_fetch_array($query);
    $usuario = $res['id'];
 
    $query = mysqli_query($db, "SELECT * from consultor where num_empleado = '$numero'");
    if ($res=mysqli_num_rows($query)>0) {
        echo "1";
 
    }else{
        $insertar = "INSERT INTO consultor (nombres, num_empleado, id_proyecto, estatus, fehca_in, id_usuarios) VALUES ('$nombre', '$numero', '$proyecto', 'Activo', '$fecha', '$usuario')";
 
        $resultado = mysqli_query($db, $insertar);
 
        if (!$resultado) {
            echo "Error al registrar los datos";
        }else{
 
        }
    }
 
 
}else{
	echo "22";
}


El problema es que no entra al primer IF
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 Juan José
Val: 6
Ha disminuido su posición en 3 puestos en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar arrays de ajax a php

Publicado por Juan José (3 intervenciones) el 13/06/2019 00:35:34
Y si pruebas primero en recoger el dato de los campos y luego metiendolos en un array y luego meterlos en el success. Aunque yo no le pondria el data sino el response.
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
$('#sugerencia').click(e => {
 
 
	let nombre = document.getElementById('nombreS').value;
	let apellido = document.getElementById('apellidoS').value;
	let correo = document.getElementById('emailS').value;
	let comentario = document.getElementById('comentarioS').value;
 
 
	//Quitar espacios del principio y del final por si se pusieran
	nombre = nombre.trim();
	apellido = apellido.trim();
	correo = correo.trim();
	comentario = comentario.trim();
 
	$.ajax({
		url: "./PHP/main.php",
		data: {
			nombreSugerencia: nombre,
			apellidoSugerencia: apellido,
			correoSugerencia: correo,
			comentarioSugerencia: comentario
		},
		type: "POST",
	})
	.done(function(response) {
		if(response=="ERROR"){
 
			//Cuando haya un error pasará esto de una forma consecutiva hasta que no se envie de forma correcta
			$('#respuestaSugerencia').children().remove();
 
			//Devolveremos los campos a su estado inicial
			$('#nombreS').prop('value', '');
			$('#apellidoS').prop('value', '');
			$('#emailS').prop('value', '');
			$('#comentarioS').prop('value', '');
 
			$('#respuestaSugerencia').css({width: '50vw'})
			.append($('<p style=" background: rgba(255,255,255, 0.5); color:red; font-size:16px; margin-bottom:10px;">')
				.text('Ha ocurrido un problema, introduzca de nuevo los datos'));
 
		}
		else if(response=="EMAIL FALLO"){
			$('#respuestaSugerencia').children().remove();
 
			$('#nombreS').prop('value', '');
			$('#apellidoS').prop('value', '');
			$('#emailS').prop('value', '');
			$('#comentarioS').prop('value', '');
 
			$('#respuestaSugerencia').css({width: '50vw'})
			.append($('<p style=" background: rgba(255,255,255, 0.5); color:red; font-size:16px; margin-bottom:10px;">')
				.text('Solo aceptamos dominios que acaben en ".com"'));
		}
 
		else{
			//Cuando no haya ningun error se enviará esta sugerencia a la tabla 
			$('#respuestaSugerencia').children().remove();
 
			$('#nombreS').prop('value', '');
			$('#apellidoS').prop('value', '');
			$('#emailS').prop('value', '');
			$('#comentarioS').prop('value', '');
 
			$('#respuestaSugerencia').css({width: '50vw',})
			.append($('<p style=" background: rgba(255,255,255, 0.5); color:red; font-size:16px; margin-bottom:10px;">')
				.text('Gracias por enviarnos su sugerencia.'));
		}
 
	});
 
});//cierre de btn-sugerencia
ESTO ES UN EJEMPLO
Luego en el php tienes que conocer la posicion de cada uno de los campos y los recoges para meterlos en la consulta.
$_POST['nombreSugerencia']
Y los recoges con este nombre que es con el que se le pasa al php si fuera la posicion de un array pues ya sabes pasale la posicion
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

Pasar arrays de ajax a php

Publicado por Emmanuel Gomez (4 intervenciones) el 13/06/2019 00:56:41
El problema es que los datos si los puedo mandar, ahi creo que no viste el input type ="file"; es ahi donde genero el array el cual quiero enviar con los datos, los datos sin el array si los envio lo que no puedo hacer que envie es el array.
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 Juan José
Val: 6
Ha disminuido su posición en 3 puestos en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar arrays de ajax a php

Publicado por Juan José (3 intervenciones) el 13/06/2019 01:01:21
comprueba cuando haces la el isset del archivo que te envia si true o false y creo que no has concadenado bien, no veo los ".$correo."
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

Pasar arrays de ajax a php

Publicado por Emmanuel Gomez (4 intervenciones) el 13/06/2019 01:18:17
Me manda null en la variable $_FILE[archivo]; los demas datos si los envia
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 Juan José
Val: 6
Ha disminuido su posición en 3 puestos en AJAX (en relación al último mes)
Gráfica de AJAX

Pasar arrays de ajax a php

Publicado por Juan José (3 intervenciones) el 13/06/2019 01:35:21
1
Documentos <input type="file"  name="archivo[]" id="archivo[]" multiple="true" accept="application/pdf, application/vnd.ms-excel, application/msword" required="required" style="display: none;">
vale, fijate en el identificador de la etiqueta del html pones "archivo[]"
Y esta buscando esa id no el type.
No es recomendable que pongas esos nombres extraños. y porfa, cierra la etique tal final.
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

Pasar arrays de ajax a php

Publicado por Emmanuel Gomez (4 intervenciones) el 13/06/2019 01:38:58
Eso ya lo corrige pero aun no me da el rasultado que quiero osea que mande el valor del array marca aun lo mismo.
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