AJAX - problemas con la carga de un archivo

 
Vista:
sin imagen de perfil

problemas con la carga de un archivo

Publicado por jose maria (7 intervenciones) el 06/07/2014 14:35:43
hola, lo primero es que no tengo ni idea de ajax, lo segundo es que desde el apartado de php me han dicho que lo que quiero se puede hacer con ajax, por eso lo cuelgo en este hilo, procedo a poner exactamente lo que yo pedia y lo que me aconsejaron.
gracias

"hola, tengo un html que le envia datos al archivo php, este lo que hace es enviar un mail a mi correo, todo esto funciona bien....
lo que me pregunto es si se puede ejecutar a nivel de servidor este archivo php sin que se abra ninguna ventana del navegador
gracias
PHP se ejecuta precisamente del lado del servidor, lo que implica realizar una peticion, puedes usar AJAX para lo que tu necesitas."
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 xve
Val: 90
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

problemas con la carga de un archivo

Publicado por xve (222 intervenciones) el 06/07/2014 20:48:18
Hola Jose Maria, podria ser algo así... para este ejemplo, utilizo jquery...

tu archivo 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
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="utf-8">
    <script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>
 
    <script>
    function enviar()
    {
		$.post("archivo.php", $("#form").serialize(), function(data){
			$("#resultado").html(data);
		});
		return false
    }
    </script>
 
</head>
 
<body>
 
<form id="form" ...>
	...
	<input type="button" name="enviar" value="Enviar" onclick="enviar();">
	...
</form>
 
<div id="resultado"></div>
 
</body>
</html>

El archivo que envía el correo mail.php
1
2
3
4
5
6
7
<?php
....
if(mail($sPara, $sAsunto, $sTexto, $sCabeceras))
{
	echo "Su formulario ha sido enviado con exito";
}
?>

Espero que te sirva... coméntanos, ok?
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

problemas con la carga de un archivo

Publicado por jose maria (7 intervenciones) el 09/07/2014 20:15:03
hola, gracias, no veo donde pongo el codigo 1º que sujieres ¿dentro de mi php? y la segunda parte, supongo que lo incorporo en el segundo ¿verdad?
aqui te dejo mis codigos
gracias

index.html

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
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>MIWEB</title>
</head>
<body>
<script type="text/javascript">
 function enviarFormulario(){
 dato1 = document.formulario.dato1.value;
 dato2 = document.formulario.dato2.value;
 dato3 = document.formulario.dato3.value;
 if (dato1 == "" || dato2 == "" || dato3 == "")
 alert("Por favor, rellene todos los campos y vuelva a enviar el formulario. Muchas gracias.");
 else
 document.formulario.submit();
 }
</script>
 
<form action="enviomail.php" method="post" id="formulario" name="formulario">
 <div class="f_n_f_izq">
 <input type="hidden" name="Enviado" value="ok" />
 <input type="text" name="dato1" ><br>
 <input type="text" name="dato2"><br>
 <input type="text" name="dato3">
 <a href="javascript:enviarFormulario();">ENVIAR</a>
</form>
</body>
</html>

enviarmail.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
<?
if (isset($_POST["Enviado"])){
 
 $phpdato1=$_POST['dato1'];
 $phpdato2=$_POST['dato2'];
 $phpdato3=$_POST['dato3'];
 $palabra = "abcdef";
 
 $email_destino="mio@gmail.com";
 $asunto="Prueba de envío";
 $cabeceras = "MIME-Version: 1.0" . "\r\n";
 $cabeceras .= "Content-type: text/html; charset=utf-8" . "\r\n";
 $cabeceras .= "From: MI MAIL <".$email_destino.">" . "\r\n";
 $mensaje = "
 <html>
 <head>
 <title>Envio desde web</title>
 </head>
 <body>
 <div>
 palabra=".$palabra."<br>
 dato 1= ".$phpdato1."<br>
 dato 2= ".$phpdato2."<br>
 dato 3= ".$phpdato3."
 </div>
 </body>
 </html>";
 
 if (mail($email_destino,utf8_decode($asunto),$mensaje,$cabeceras)){
 ?><script type="text/javascript">alert("Su mensaje se ha enviado correctamente.");</script><?
 }else{
 ?><script type="text/javascript">alert("Se ha producido un error durante el envio.");</script><?
 }
}
?>
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 xve
Val: 90
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

problemas con la carga de un archivo

Publicado por xve (222 intervenciones) el 10/07/2014 07:59:48
Hola Jose Maria, seria algo así:

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
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>MIWEB</title>
 
	<script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>
 
</head>
<body>
<script type="text/javascript">
function enviarFormulario(){
	dato1 = document.formulario.dato1.value;
	dato2 = document.formulario.dato2.value;
	dato3 = document.formulario.dato3.value;
	if (dato1 == "" || dato2 == "" || dato3 == "")
		alert("Por favor, rellene todos los campos y vuelva a enviar el formulario. Muchas gracias.");
	else{
		$.post("archivo.php", $("#formulario").serialize(), function(data){
			//$("#resultado").html(data);
		});
	}
	return false;
}
</script>
 
<form action="" method="post" id="formulario" name="formulario">
 <div class="f_n_f_izq">
 <input type="hidden" name="Enviado" value="ok" />
 <input type="text" name="dato1" ><br>
 <input type="text" name="dato2"><br>
 <input type="text" name="dato3">
 <div onclick="enviarFormulario();">ENVIAR</div>
</form>
</body>
</html>

Espero que te sirva...
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

problemas con la carga de un archivo

Publicado por jose maria (7 intervenciones) el 10/07/2014 19:18:37
bueno, si me sirve, o por lo menos hace exactamente lo mismo que lo que yo tengo, no le veo la diferencia, osea, cuando le doy a enviar en el html, se abre la pestaña y me sale el mensaje de correo enviado
¿donde radica la diferencia?
lo que quiero es la ejecucion de este php sin que se abra ninguna pestaña ni nada.....

gracias
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 xve
Val: 90
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

problemas con la carga de un archivo

Publicado por xve (222 intervenciones) el 11/07/2014 08:20:09
Hoal Jose, en el código que yo te muestro, no existe ese mensaje... y la petición ajax, no lo captura??? lo has copiado entero lo que yo te he puesto? o solo has copiado la parte en negrita?

Cópialo entero y pruébalo... no te puede aparecer ningún mensaje.
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 Tonatiu

problemas con la carga de un archivo

Publicado por Tonatiu (2 intervenciones) el 09/07/2014 23:46:17
Si no puedes me dices yo te cobro varato y te lo arreglo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar