PHP - Pasar variables de Ajax a PHP

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

Pasar variables de Ajax a PHP

Publicado por Eduardo (2 intervenciones) el 25/02/2017 04:14:27
Hola gente,

Tengo un problema, no se como pasar dos variables de ajax a otra pagina php, aqui les dejo mi codigo:

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
<script>
function upload_image(){
 
	var inputFileImage = document.getElementById("foto");
	var file = inputFileImage.files[0];
	var folio = <?php echo $numero_factura; ?>; esta variable no se como enviarla
	var detalle = <?php echo $id_detalle; ?>; esta variable no se como enviarla
 
	if( (typeof file === "object") && (file !== null) )
		{
			$("#load_img").text('Cargando...');
			var data = new FormData();
			data.append('imagefile',file);
 
			$.ajax({
				url: "ajax/imagen_partida_ajax.php",
				type: "POST",
				data: data,
				contentType: false,
				cache: false,
				processData:false,
				success: function(data)
				{
					$("#load_img").html(data);
				}
			});
		}
	}
</script>
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 Alejandro
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Pasar variables de Ajax a PHP

Publicado por Alejandro (157 intervenciones) el 26/02/2017 00:34:23
Hola Eduardo intenta con esto:

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
<!DOCTYPE html>
<html lang="es">
    <head>
        <meta charset="utf-8">
        <title>Pasar variables</title>
    </head>
    <body>
        <div id="load_img"></div>
 
        <form action="ajax/imagen_partida_ajax.php" method="POST" id="form">
            <input type="file" name="foto" id="foto" value="">
            <input type="submit" name="" value="Enviar">
            <input type="hidden" name="folio" value="<?php echo $numero_factura; ?>">
            <input type="hidden" name="detalle" value="<?php echo $id_detalle; ?>">
        </form>
 
        <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
        <script>
        function upload_image(e) {
            e.preventDefault();
 
        	var inputFileImage = document.getElementById("foto");
        	var file = inputFileImage.files[0];
 
        	if( (typeof file === "object") && (file !== null) )
        		{
        			$("#load_img").text('Cargando...');
        			var data = new FormData(document.getElementById('form'));
 
        			$.ajax({
        				url: "ajax/imagen_partida_ajax.php",
        				type: "POST",
        				data: data,
        				dataType: 'json',
                        contentType: false,
        				cache: false,
        				processData:false,
                        success: function(data){
                            console.log(data);
                        }
        			});
        		} else {
                    alert('Selecciona una imagen');
                }
        	}
 
            // Event Listener
            document.getElementById('form').addEventListener('submit', upload_image);
 
        </script>
    </body>
</html>

Comentanos si te sirvio. Saludos.
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: 4
Ha aumentado su posición en 22 puestos en PHP (en relación al último mes)
Gráfica de PHP

Pasar variables de Ajax a PHP

Publicado por Eduardo (2 intervenciones) el 26/02/2017 04:30:14
Hola buenas noches,

He adaptado tu codigo a mis paginas pero al hacer la prueba no me hace nada, no se si estoy equivocado pero en tu codigo (boton enviar) no veo como ejecuta la funcion upload_image(e);

Asi que cuando presiono ese boton solo me manda la pagina (imagen_partida_ajax.php) y no hace nada. Adjunto el codigo de la pagina donde inserte la solucion (esta dontro de una tabla) y tambien el codigo de la pagina imagen_partida_ajax.php para que te des una mejor idea:

Pagina editar_hcotizacion.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<tr>
    <td class='<?php echo $clase;?> text-center'><?php echo $partida;?></td>
    <td class='<?php echo $clase;?> text-center'><?php echo $cant;?></td>
    <td class='<?php echo $clase;?> text-center'><?php echo $uni;?></td>
    <td class='<?php echo $clase;?> text-left'  ><?php echo $codigo;?></td>
    <td class='<?php echo $clase;?> text-left'  ><?php echo $nom;?></td>
    <td class='<?php echo $clase;?> text-right' ><?php echo $precio_venta_f;?></td>
    <td class='<?php echo $clase;?> text-right' ><?php echo $precio_total_f;?></td>
    <td class='<?php echo $clase;?>'>
        <form action="ajax/imagen_partida_ajax.php" method="POST" id="form">
           <input type="file" name="foto" id="foto" value="">
           <input type="submit" name="" value="Enviar">
           <input type="hidden" name="folio" value="<?php echo $numero_factura; ?>">
           <input type="hidden" name="detalle" value="<?php echo $id_detalle; ?>">
        </form>
    </td>
    <td class='<?php echo $clase;?> text-center'><a href="#" title='Eliminar Partida' onclick="eliminar('<?php echo $id_detalle ?>')"><i class="glyphicon glyphicon-trash"></i></a></td>
</tr>

Código de la pagina imagen_partida_ajax.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
56
<?php
  include('is_logged.php');
  $session_id= session_id();
  require_once ("../config/db.php");
  require_once ("../config/conexion.php");
  if (isset($_FILES["imagefile"])){
 
     $id_folio=intval($_GET['folio']); //aqui recojo las variables del formulario
     $id_detalle=intval($_GET['detalle']); //aqui recojo las variables del formulario
 
     echo '<script language="javascript">alert("Cotizacion: " +$id_folio);</script>';
 
     $target_dir="../img/partidas/";
     $image_name = time()."_".basename($_FILES["imagefile"]["name"]);
     $target_file = $target_dir . $image_name;
     $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
     $imageFileZise=$_FILES["imagefile"]["size"];
 
     if(($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) and $imageFileZise>0) {
        $errors[]= "<p>Lo sentimos, sólo se permiten archivos JPG , JPEG, PNG y GIF.</p>";
     } else if ($imageFileZise > 1048576) {//1048576 byte=1MB
        $errors[]= "<p>Lo sentimos, pero el archivo es demasiado grande. Selecciona logo de menos de 1MB</p>";
     }  else
     {
        if ($imageFileZise>0){
           move_uploaded_file($_FILES["imagefile"]["tmp_name"], $target_file);
           $logo_update="imagen_url='img/partidas/$image_name' ";
        }else{ $logo_update="";}
 
        $sql = "UPDATE hcotizacion_det SET $logo_update WHERE numero_factura =".$id_folio." AND id_detalle=".$id_detalle.";";
        $query_new_insert = mysqli_query($con,$sql);
        if ($query_new_insert) {
?>
<img class="img-responsive" src="img/partidas/<?php echo $image_name;?>" alt="Logo">
<?php
        } else {
           $errors[] = "Lo sentimos, actualización falló. Intente nuevamente. ".mysqli_error($con);
        }
     }
}
?>
<?php
  if (isset($errors)){
?>
<div class="alert alert-danger">
  <button type="button" class="close" data-dismiss="alert">&times;</button>
  <strong>Error! </strong>
  <?php
     foreach ($errors as $error){
        echo $error;
     }
  ?>
</div>
<?php
}
?>

ADJUNTO IMAGEN DE LA PAGINA DONDE SE VA MOSTRAR LAS PARTIDAS CON SU IMAGEN CORRESPONDIENTE.
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