Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] llamar función de js en archivo php

Estas en el tema de llamar función de js en archivo php en el foro de Javascript en Foros del Web. hola tengo la siguiente duda nose en realidad si el tema corresponde a ponerlo en la parte del foro de php o aca bueno la ...
  #1 (permalink)  
Antiguo 31/03/2013, 20:25
Avatar de derleguan  
Fecha de Ingreso: abril-2012
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 1
llamar función de js en archivo php

hola tengo la siguiente duda nose en realidad si el tema corresponde a ponerlo en la parte del foro de php o aca bueno la duda es la siguiente.

tengo un archivo php el cual valida e ingresa datos a una base de datos
y al final tengo un código js que me redireciona al archivo html de donde sale el formulario con los datos, la cosa es que quiero avisarle al usuario que al ingresar o no poder ingresar los datos a la base de datos este le muestre un mensaje al usuario que los datos fueron ingresados con éxito o no fueron ingresados con éxito, si bien el mensaje lo puedo enviar desde el archivo php al hacerlo muestra una pagina en blanco con el mensaje y no muestra la información del archivo html lo cual a mi parecer puede verse feo en la implementación
por lo cual necesito saber si se puede hacer que al redirecionar el archivo html se llame una función y esta se ejecute después que se allá cargado el archivo, con el fin de mostrar el mensaje con la misma interfaz de cuando se ejecuto los envíos de datos sin tener que colocar todo en un solo archivo.

espero que la pregunta se entienda bien y que me puedan dar un orientasion para poder realizar lo.

gracias de antemano.
  #2 (permalink)  
Antiguo 01/04/2013, 09:17
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: llamar función de js en archivo php

Si entiendo lo que decis, que si, está un poco confuso, necesitás de ajax o de un iframe oculto.

En tu php manipulas la base de datos
tras ejecutar el SQl con la función
http://www.php.net/manual/es/mysqli.affected-rows.php
podés saber si la cantidad de filas afectadas es > 0, con lo que sabrías que hubo modificaciones en la bd. Sabido esto, es sencillo llamar una función en javascript definida en el parent y pasarle una variable según sea el resultado, ó bien, si utilizás ajax, enviar una respuesta a la página del form, para mostrar un mensaje al usuario.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 01/04/2013, 16:45
Avatar de derleguan  
Fecha de Ingreso: abril-2012
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: llamar función de js en archivo php

mmm gracias por tu respuesta y tratar de enterder mi problema pero no es eso voy a tratar de explicarlo con un poco de codigo a ver si se entiende mejor

en un archivo html
<script language=\"JavaScript\" >
funcion mensaje(opcion){
if (opcion==1){
alert('Se produjo un error no se pudo ingresar el producto intentelo nuevamente');
}else{
alert('datos insertados con exito');
}

}

</script>"
<form action="archivo.php" method="post" enctype="multipart/form-data">
datos a pedir
<input type="submit" name="submit" value="guardar">
</form>


archivo php
<?php
$h = mysql_connect( $host, $admin_name, $admin_pass ) or die( "ERROR al conectar al servidor." );
if( isset( $h ) ){
$db = mysql_select_db( $db_name, $h ) or die( "ERROR al abrir base de datos." );
if( isset( $db ) ){
$sql = "insert into......"'";
$res = mysql_query( $sql, $h ) or die( "ERROR al ejecutar instruccion SQL.");
echo "<script language=\"JavaScript\" >alert('Se produjo un error no se pudo ingresar el producto intentelo nuevamente');location.href = 'archivo.php';</script>";// embes de esto, ahi alguna manera de llamar a la funcion mensaje(1) de un archivo html y que el mensaje se ejecute alla despues que el archivo se alla cargado

}
}
>
  #4 (permalink)  
Antiguo 01/04/2013, 17:05
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: llamar función de js en archivo php

Es justamente eso, mira (te lo pongo simplificado)

index.html

Código:
<html>
<head>
<script>
function mensaje(respuesta){
document.getElementById('msj').innerHTML = respuesta;
}
</script>
</head>
<body>
<form action="archivo.php" method="post" target="actualiza">
/// tus inputs
</form>
<div id="msj">
<!-- aqui aparecen los mensajes sin que la pagina se recargue -->
</div>
<!-- este iframe hace de dewtino o target del action del form, pero está oculto -->
<iframe name="actualiza" id="actualiza" style="display: none;" src="about:blank">
</iframe>
</body>
</html>
en tu php

si hay algún error

Código:
echo "
<script>
parent.mensaje('error bla bla bla')
</script>
";
exit;
si hubo actualización

Código:
echo "
<script>
parent.mensaje('BD actualizada');
</script>
";
se entiende la idea, incluso dentro del mensaje podés pasar $variables de php.

La otra es con ajax, un poco más complicada

Saludo
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 01/04/2013, 18:13
Avatar de derleguan  
Fecha de Ingreso: abril-2012
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: llamar función de js en archivo php

a gracias voy a darle una vuelta a ambas opciones, lo importante que me sacaste de la duda mas grande que era si se podía implementar algo por el estilo gracias emprear.

Etiquetas: html, js, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:27.