Foros del Web » Programando para Internet » Javascript »

Pasar variables entre ventanas

Estas en el tema de Pasar variables entre ventanas en el foro de Javascript en Foros del Web. Buenos dias compañeros foreros, se que este tema ya se ha hablado y comentado pero las soluciones no me han ayudado de mucho. Tengo un ...
  #1 (permalink)  
Antiguo 26/04/2011, 07:32
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 2
Pasar variables entre ventanas

Buenos dias compañeros foreros, se que este tema ya se ha hablado y comentado pero las soluciones no me han ayudado de mucho.

Tengo un formulario para llenar X campos y hay un campo donde debo escoger la marca de un calzado, en el formulario le agregue un boton que me abre una ventana POPUP donde me muestra todas las marcas que hay en la base de datos.

Mi problema es que no logro pasar ese dato de la ventana hija hacia la ventana padre, si hago un formulario donde no hago consulta a la base de datos si me funciona perfecto, pero al hacer la consulta SQL no logro hacerlo,

Les dejo aqui mi codigo a ver en que me puede ayudar:

Este es mi formulario:

Código PHP:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<script>
function abrir(URL){
window.open(URL,"",'width=505,height=300,left=380,top=200,toolbar=no,scrollbars=yes,statusbar=no,menubar=no,resizable=no,Location=no,titlebar=no');
return false;
}
</script>

<?php
include("conex.php");

$imp mysql_query("SELECT imp_codigo,imp_descri FROM dpimppat");
$iva mysql_query("SELECT tip_codigo,tip_descri FROM dpivatip");

?>
<body>

<form action="insertar.php" method="post" name="insert" autocomplete="OFF" id="insert">
<div>
<table>
<tr>
  <td>Codigo</td>
  <td><input name="codigo" type="text" /></td>
</tr>
<tr>
  <td>Nombre</td>
  <td><input name="nombre" type="text" /></td>
</tr>
<tr>
  <td>Tipo de Iva</td>
   <td width="41">
             <select name="iva" title="Iva">
             <option value="">Selecione Iva...</option>
             <?php 
                  
while ($tax mysql_fetch_array($iva))
                  {
                      
                    echo 
"<option value={$tax[tip_codigo]}>{$tax[tip_descri]}</option>";
                  }
                  
                  
mysql_free_result($iva);
                
?>              
                </select>
          </td>
</tr>
<tr>
  <td>Utilizacion</td>
   <td width="41">
             <select name="utilidad" title="Utilizacion">
             <option value="">Selecione...</option>
             <option value="A">Alquiler</option>
             <option value="M">Materia Prima</option>
             <option value="V">Venta</option>
             <option value="F">Fabricacion</option>
             <option value="C">Consumo</option>
             <option value="R">Reparacion</option>
             <option value="S">Servicio</option>
             </select>
          </td>
</tr>
<tr>
  <td>Procedencia</td>
   <td width="41">
            <select name="procedencia" title="Procedencia">
             <option value="">Selecione...</option>
             <option value="N">Nacional</option>
             <option value="I">Importado</option>
            </select>
          </td>
</tr>
<tr>
  <td>Marca</td>
  <td><input name="marca" id="marca" type="text" /></td>
  <td><input name="boton_marca" type="button" value="Agregar" onclick="abrir('listado_marcas.php');"></td>
</tr>

<tr>
  <td>Observacion 1</td>
  <td><input name="obs1" type="text" /></td>
</tr>
<tr>
  <td>Observacion 2</td>
  <td><input name="obs2" type="text" /></td>
</tr>
<tr>
  <td>Observacion 3</td>
  <td><input name="obs3" type="text" /></td>
</tr>
<tr>
  <td>Impuesto S/Patente</td>
   <td width="41">
             <select name="imppat" title="Impuestos Patente">
             <option value="">Selecione Impuesto...</option>
             <?php 
                  
while ($imppat mysql_fetch_array($imp))
                  {
                      
                    echo 
"<option value={$imppat[imp_codigo]}>{$imppat[imp_descri]}</option>";
                  }
                  
                  
mysql_free_result($imp);
                
?>              
                </select>
             </td>
 </tr>
</table>

<input name="guardar" type="submit" value="Guardar" />
</div>
</form>
</body>
</html>
Y este es el POPUP que abre al presionar el boton y me lleva al archivo listado_marcas.php

Código PHP:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<?php
include("conex.php");


$sql=mysql_query("SELECT mar_codigo,mar_descri FROM dpmarcas");


?>
<div  style="width:490px; position: relative; left: -15px; top: 0px; text-align:center">
<p>

      <table width="441" border = '1' align="center" cellpadding="0" cellspacing="0" class="tablas" >
       <tr style="background:#039; font-family:Tahoma, Geneva, sans-serif;  font-size:22px; color:white">
        <td width="193" class="tabla">Codigo </td>
        <td class="tabla" width="219" align="center">Descripción</td>
        <td class="tabla" width="219" align="center">  </td>                
       </tr>
 <?php
                            
            
//Mostramos los registros
 
while ($marcasmysql_fetch_array($sql))
 {
                
  echo 
'<tr style="font-family:Tahoma, Geneva, sans-serif;  font-size:18px;">';
  echo 
'<td align= "left">'.$marcas['0'].'</td>';
  echo 
'<td align= "left" style="font-style:italic">'.$marcas['1'].'</td>';
  echo 
'<td><input type="button" value="Seleccionar" onClick="javascript: opener.document.insert.marca.value='.$marcas['0'].'; self.close()"></td>';
 
  echo 
'</tr>';
            
 }                    
    
mysql_free_result($sql);
?>
</table>

  </div>
</body>
</html>
De verdad no se que estoy haciendo mal, pienso que el error lo tengo en la linea de hace la seleccion, en el OnClick.

Espero puedan aydarme con esto.

Saludos
  #2 (permalink)  
Antiguo 27/04/2011, 15:11
 
Fecha de Ingreso: marzo-2011
Mensajes: 13
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Pasar variables entre ventanas

por que no usas un

http://fancybox.net/blog
  #3 (permalink)  
Antiguo 27/04/2011, 17:37
Avatar de livemusic  
Fecha de Ingreso: abril-2011
Ubicación: Lima - Chorrillos
Mensajes: 150
Antigüedad: 13 años
Puntos: 18
Respuesta: Pasar variables entre ventanas

Bueno, antes que nada explicar un poco de teoría, va e

Un POPUP, lo que hace es abrir una ventana independiente, que lo hace es abrir otro navegador.

Un modal conocido también como un lightbox, lo hace es abrir dentro de la misma página una ventana, pero trabaja de la misma forma es totalmente independiente.

Ósea si trabajas ya sea con un POPUP o un modal una posible solución seria..

-Guardar el valor seleccionado en tu base de datos y en el formulario padre mostrar el último valor ingresado y refrescar tu formulario padre.

-Otra solución sería crear una función JavaScript, y en el formulario hijo crear un action que almacené el valor y que esta funcion envié el valor seleccionado, y refrescar el navegador un ejemplo, sería algo así action="javascript: set_value();".

Ambas soluciones no son prácticas de echo vas tener que abrir en el formulario hijo, abrir tu base de datos y mostrar los valores, en tu lista, para mí no son prácticos de echo es algo trabajoso. Una solución práctica seria la siguiente.

-Crear un div que muestre los valores de tus lista, los valores que va a tener tu formulario hijo y cuando cargue la página este esté oculto, y que al momento que tú le des clic que me muestre este div, la idea nace de este ejemplo.

http://jqueryui.com/demos/datepicker/#icon-trigger

Cuando tú le das clic a la imagen del calendario te muestra el div con el calendario, en tu caso sería algo como esto..

http://jsfiddle.net/9XmVT/14/

Cuando le das clic al input te muestra un div con los valores que tú le hayas pasado.

Lo veo mucho más practico solo abrías tu base de datos, en el formulario padre no tendrías que depender de formularios hijos, y el valor que seleccione el usuario estaría dentro de la misma página.

Espero haberte ayudado, saludos..

Etiquetas: pasar, variables, ventanas
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 15:12.