Ver Mensaje Individual
  #11 (permalink)  
Antiguo 22/04/2004, 19:09
Avatar de sism82
sism82
 
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
ok a riesgo de que me regañe algún moderador, repito tu código para comentarlo:

####EMPIEZA TU CODIGO#####
<html>
<head>
<title>Disparadora</title>

#####
/*
la función de aqui abajo esta bien, todo lo que hace es abrir un popUp.
*/
###
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
//-->
</script>
####
/*
el php de aqui abajo no esta del todo bien
si tu pones if($_GET['hola'] etc etc)
le estas diciendo al servidor que reciba una variable por GET que todavia no envias, me explico? esa variable todavía no existe, va a existir ya que se abra el pop up y se la envies desde allá. En versiones decentes de PHP te debe marcar error "undefined index hola", por que esa variable no ha sido inicializada, debes poner esto:
<?php
function cargar(){
if(isset($_GET['hola]) && $_GET['hola'] == 10)
$mensaje = 'Mensaje de error';
else
$mensaje = 'mensaje de exito';
return $mensaje;
}
?>
Ahh no es necesario poner { } llaves si la sentencia de control, es este caso IF, solo tienen una instrucción, en este caso el echo.
Entonces reemplaza tu codigo por el que te puse arriba.
isset te devuelve TRUE si la variable esta inicializada.
En resumen todo el código de arriba dice:
si la variabel GET que se llama hola esta inicializada Y si la variable GET que se llama hola es igual a diez, entonces a la variable $mensaje asignale mensaje de error, si no es asi, asignale mensaje de exito y regresa (return) el resultado
*/
###
<?php function cargar(){if($_GET['hola'] == 10){
echo 'mensaje de error';
}else{
echo 'mensaje de exito';
}
}
?>

</head>
<body>
<a href="#" onClick="MM_openBrWindow('dos.php','waternet','wid th=545,height=260')">Contactenos</a>
#########
/*
aqui donde mandas llamar la función pon esto:
<?php
if(isset($_GET['hola']))
echo cargar();

?>
que en sintesis, solo vuelve a comprobar que la variable GET hola este inicializada, y si lo esta, entonces ejecuta el código de la funcion carga y el resultado lo muestra en el HTML (echo)
Realmente estamos comprobando de mas, pero es bueno para practicar.... ;P
entonces reemplaza esto tambien...
*/
######
<?php return cargar();?>
</body>
</html>

El pop up tiene esto

<html>
<head>
<title>pop up</title>
</head>
######
/*
Aqui es buena idea que pongas que script es
<script language etc etc
por que puede haber scripts en C# u otros lenguajes
ahora bien, estas haciendo cosas extrañas jeje
vamonos linea por linea:
1.defines tu funcion (function cerrar())
2.actual = opener.location, es decirle al navegador, en la variable que se llama 'actual', guardame la dirección URL de la ventana que me abrió, es decir la ventana padre(opener). en español suena raro decir la "abridora".
3.dices, a la variable nueva asignale el contenido de actual(es decir la direccion de opener) mas(concatenar) la cadena "?hola=10" es decir, donde la variable hola es igual a 10.
4.aqui es donde se ejecuta la acción, opener.location = nueva;
aqui le dices que la ventana que abrió el popup debe irse a la direcion que le indica la varibale 'nueva'
5.pero EN ESTA LINEA HACES ALGO EXTRAñO, justo en la linea anterior mandamos a la ventana que abrió el pop up a la direccion 'nueva', y en esta linea le dices que se vaya a forosdelweb???
opener.location.href es lo mismo(para fines practicos) que opener.location
6. window.close es correcto para cerrar el popup

*/
#######
<script>
function cerrar (){
actual = opener.location;
nueva = actual+"?hola=10";
opener.location = nueva;
onunload= "opener.location.href='http://www.forosdelweb.com';"
window.close();
}
</script>

<body>
<a href="#" onClick="return cerrar();"><font color="#0000FF">Cerrar</font></a>
</body>
</html>
####TERMINA TU CODIGO#######


en general esta bien, la primer ventana esta lista, la segunda ventana(ya me canseeee :p) es la que esta mal. Voy a ser breve..

en el pop up vas a hacer estoo...

<html>
<head>
<title>pop up</title>
</head>
<script language="Javascript">
function cerrar (exito){
//defino variables
actual = opener.location;
falla = actual+"?hola=20";
exito = actual+"?hola=10"
//veo si hubo exito en la insercion
//si lo hubo mando hola con valor de 20(realmente cualquier otro valor diferente de 10 es bueno) para que PHP me despliegue el mensaje de exito
if(exito == 1)
opener.location = exito;
//si no lo hubo mando URL con hola = 10 para que el codigo php
//mande mensaje de error, al recibir la variable GET hola con valor de 10 (?hola=10)
else
opener.location = falla;
//cierro popup
window.close();
}
</script>
<?php
###aqui va el codigo de tu insercion a la base de datos
/*
esto es importante...
en la consulta que tienes abajo le estas diciendo al servidor por medio de PHP lo siguiente:
a la variable $Result1 asignale el resultado que te devuelva la funcion mysql_query(), a la cual le pasas los parámeotrs $insertSQL y $cnn, pero si no se ejecuta la sentencia SQL con exito, interrumpe todos los procesos(die())
Entonces, si tu usas die, y la consulta no es exitosa, no vas a dar tiempo a que se ejecute el script de java que acabamos de escribir arriba.
quitale or Die
quedaría asi

$Result1 = mysql_query($insertSQL, $cnn);

luego comprobamos si fue exitosa, mysql_query devuelve TRUE si se ejecuto bien, por lo tanto podemos poner

if($Result1)
$exito = 1;
else
$exito = 0;

y listo, la varible de PHP $exito la enviamos como parametro a la funcion de javscript, fijate en la etiqueta del link <a href...

*/
$Result1 = mysql_query($insertSQL, $cnn) or die(mysql_error())

?>
<body>
<a href="#" onClick="cerrar(<?php echo $exito; ?>);">
</body>
</html>


dudas??

hasta pronto

regreso en un par de horas por si te quedan dudas...