PDA

Ver la Versión Completa : Problema con php y javascript


Andrea Martinez
21-11-2004, 01:59:35
Hola a todos.
Tengo un problema con la generacion de un popup, en una pagina inicial hay un formulario compuesto de un select y un boton que enviara un dato hacia el script de php para procesarlo, la idea es que al presionar el boton me habra un popup con la pagina php, al momento de pasar la variable del select (sel_ano_ind) por el metodo post, como que el script del popup me la borra y me aparace como indefinida al ejecutar el php.

Estoy seguro que es la ejecucion del popup que borra la variable porque quito el llamado del script y me habre una pagina normal con las variables bien definidas.

espero me ayuden con este problema, les envio el codigo. gracias...


<form name="formindicadores" method="POST" action="JavaScript:popUp('indicadores.php')">
<td width="47%" class="Texto"><strong>Indicadores: </strong></td>
<td width="41%">
<select name="sel_ano_ind" class="Texto" id="sel_ano_ind">
<option value="1998">1998</option>
<option value="1999">1999</option>
<option value="2000">2000</option>
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="0" selected>Elija una Opcion</option>
</select>
<input type = "hidden" name = "munic" value ="006">
</td>
<td width="12%"><input name="Submit" type="submit" class="botonver" value="Ver"></td>
</form>

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page"+id+"=window.open(URL,'"+id+"','toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=600,heig

ht=500,left=1,top=1');");
}
// End -->
</script>

Gracias....:)

kayetano
22-11-2004, 13:04:41
Hola

Nunca se me ha dado el caso de tene que hacer algo asin, pero me da que no vas poder hacerlo asin, ya que cuando llamas al popup ya has perdido la información del formulario.

Para realizar esto que tu quieres yo te aconsejo lo siguiente:
1. Fuera el action

<form name="formindicadores" method="POST">

la verdad es que el method tampoco sirve de mucho.

2. Modificación del botón submit.

<input name="Submit" type="buton" class="botonver" value="Ver" onClick="Enviar(this.form)">


3. Creación de un procedimiento en javascript, que lea el valor del select y habra el popup.

<script>
function Enviar( cual ) {
/* aqui debes leer el valor de sel_ano_ind */
day = new Date();
id = day.getTime();
eval("page"+id+"=window.open(URL?var="+valor_sel_ano_id+",'"+id+"','toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=600,heig

ht=500,left=1,top=1');");
}
</script>


El código anterior simplemente es para expresar una ida, supongo que me faltarán cosas, e incluso algunas estarán mal, pero espera que entiendas lo que quiero decir, y que puedas resolver tu problema.

roman
22-11-2004, 17:32:42
Otra opción:


<form name='formindicadores' method='post' action='indicadores.php' onSubmit='return form_submit(this)'>


En form_submit abres la ventana y asignas su id a la propiedad target de <FORM>:



function form_submit(formulario)
{
day = new Date();
id = day.getTime();

formulario.target = id;
eval("page" + id + " = window.open(form.action, " + id + ", 'opciones')");

return true;
}


Lo he probado en IE, FF, NS y Opera y ha funcionado.

// Saludos

kayetano
22-11-2004, 17:42:16
Hola

Muy bueno roman tomo nota, aunque nunca se me ha dado el caso actual, le veo mucha utilidad a tu sistema, además de se muy elegante.

roman
22-11-2004, 17:54:25
Sólo una cosa que se me fue en el recorta y pega. El form.action en la llamada a window.open en realidad no es necesario (y de hecho no era form sino formulario :o ):



eval("page" + id +" = window.open('', "+ id + ", 'width=500,height=300')");

// Saludos

Andrea Martinez
24-11-2004, 19:43:59
Gracias... Muchachos por los ejemplo. los copie y me resultaron muy bien..

le agradezco inmensamente.