VeneHosting.com :: Tu Hosting en Venezuela

Autor Tema: paso de valores desde popup a formulario padre  (Leído 900 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado usuario_13

  • Novato
  • *
  • Mensajes: 23
  • Puntuación: 0
    • Ver Perfil
paso de valores desde popup a formulario padre
« : 25 de febrero de 2009, 11:26:29 am »
hola a todos, alguien me puede ayudar por favor con este problema que tengo?

tengo un formulario padre desde el cual llamo una ventana popup y este a su vez me muestra una lista de productos que tengo almacenado en una BD (mysql), la cuestion es que cuando selecciono una opcion de ese popup no me carga toda la informacion en el formulario padre, y ya le he dado muchas vueltas al asunto.

voy a mostrar el codigo para que por favor me ayuden (OJO: este codigo abierto lo consegui en internet y lo adapte. pero no soy un experto programando y creo que requiero algo de javascript)

formulario padre:

<html>
<head>
<script>
var parametro;
function popup()
{
parametro = window.open("ventana.php","","width=400,height=300");
parametro.document.getElementById('form2').value = "num" ;
}
</script>
</head>
<body>
<form name="form1" enctype="multipart/form-data">
<table border="0">
<tr>
<td align="right">
Codigo
</td>
<td>
<input type="text" name="numero">
<input type="button" value="buscar" onClick="popup()"><br>
</td>
</tr>
<tr>
<td align="right">
Nombre
</td>
<td>
<input type="text" name="nombre" value="<?php print $valor; ?>">
</td>
</tr>
</table>
</form>
</body>
</html>

ventana popup:

<?php
include 'conexion.php';
$sql = "SELECT * FROM producto ";
$result = mysql_query($sql,$conexion);
while($row = mysql_fetch_array($result)) {
?>

<form enctype="multipart/form-data" name="form2"><table>
<a href="#" onclick="envia(<?php print $row["id_producto"]; ?>);"><?php print $row["nombre"]; ?>
<input type="hidden" name="nombre" id="nombre" value="<?php print $row["nombre"]; ?>" /></a><br>
</table></form>
<?php
}
mysql_free_result($result);

?>
<script>

function envia(num){
opener.document.form1.numero.value = num;
close();
}
</script>

el problema resulta cuando quiero pasar desde el popup el nombre del producto al formulario padre y no puedo, mas si logre pasar el id_producto.

agradeceria cualquier ayuda por favor y gracias

Desconectado ashrey

  • Fanático
  • ****
  • Mensajes: 431
  • Puntuación: 7
  • Sexo: Masculino
  • Wombat Team
    • Ver Perfil
    • Blog de ABerroteran
Re: paso de valores desde popup a formulario padre
« Respuesta #1 : 25 de febrero de 2009, 03:55:16 pm »
Es que no tienes ninguna función el el javascript que haga eso:

debes crear una mas o menos asi:
Código: [Seleccionar]
function envia(num, nome){
opener.document.form1.numero.value = num;
opener.document.form1.nombre.value = nome;
close();
}

y en el php debes colocarlo así:

Código: [Seleccionar]
<?php
include &#39;conexion.php&#39;;
$sql "SELECT * FROM producto ";
$result mysql_query($sql,$conexion);
while(
$row mysql_fetch_array($result)) {
?>


<form enctype="multipart/form-data" name="form2"><table>
<a href="#" onclick="envia(<?php print $row["id_producto"]; ?>, ''<?php print $row["nombre"]; ?>"><?php print $row["nombre"]; ?>
<input type="hidden" name="nombre" id="nombre" value="<?php print $row["nombre"]; ?>" /></a><br>
</table></form>
<?php
}
mysql_free_result($result);

?>



Desconectado usuario_13

  • Novato
  • *
  • Mensajes: 23
  • Puntuación: 0
    • Ver Perfil
Re: paso de valores desde popup a formulario padre
« Respuesta #2 : 25 de febrero de 2009, 06:31:44 pm »
hola ashrey y muchas gracias por tu pronta respuesta, hice las modificaciones en el codigo que me dijiste pero ahora no manda ni siquiera el id_producto que antes si lo hacia, ahora uno clickea sobre el producto y no hace nada, ni siquiera se cierra el popup.

creo que tu idea esta bien formulada en cuanto a modificar el function envia() que es el que captura los parametros pero tal vez falte algo mas... te agradecere enormemente que por favor me ayudes porq de verdad soy nulo en cuanto a javascript se refiere.

gracias de antemano a cualquiera que decida ayudarme.
saludos

Desconectado ashrey

  • Fanático
  • ****
  • Mensajes: 431
  • Puntuación: 7
  • Sexo: Masculino
  • Wombat Team
    • Ver Perfil
    • Blog de ABerroteran
Re: paso de valores desde popup a formulario padre
« Respuesta #3 : 26 de febrero de 2009, 12:19:20 am »
Creo que el error está aquí.

Código: [Seleccionar]
<a href="#" onclick="envia(<?php print $row["id_producto"]; ?>, ''<?php print $row["nombre"]; ?>"><?php print $row["nombre"]; ?>
Debería ser así:
Código: [Seleccionar]
<a href="#" onclick="envia(<?php print $row["id_producto"]; ?>, "<?php print $row["nombre"]; ?>"><?php print $row["nombre"]; ?>
De todas manera pruebalo y me dices.

Desconectado usuario_13

  • Novato
  • *
  • Mensajes: 23
  • Puntuación: 0
    • Ver Perfil
Re: paso de valores desde popup a formulario padre
« Respuesta #4 : 26 de febrero de 2009, 10:24:59 am »
hola ahsrey muy buenos dias, con las modificaciones que me diste lo adapte y funciono, muchas gracias por la ayuda, casi ni sabia donde buscar informacion que me sirviera. voy a ponerte en negrita las adaptaciones que hice para que tu y cualquiera que quiera usarlo lo use.

muchas gracias de nuevo y saludos.

formulario padre:

<html>
<head>
<script>
var parametro;
function popup()
{
parametro = window.open("ventana.php","","width=400,height=300");
parametro.document.getElementById('1').value = "num" ;
parametro.document.getElementById('2').value = "nome" ;
}
</script>
</head>
<body>
<form name="form1" enctype="multipart/form-data">
<table border="0">
<tr>
<td align="right">
Codigo
</td>
<td>
<input type="text" name="numero">
<input type="button" value="buscar" onClick="popup()"><br>
</td>
</tr>
<tr>
<td align="right">
Nombre
</td>
<td>
<input type="text" name="nombre">
</td>
</tr>
</table>
</form>
</body>
</html>

ventana popup:

antes esta funcion estaba despues de la consulta sql

<script language="javascript">

function envia(num, nome){

opener.document.form1.numero.value = num;
opener.document.form1.nombre.value = nome;
close();
}
</script>


<?php
include 'shared/class_folder/conexion.php';
$sql = "SELECT * FROM producto ";
$result = mysql_query($sql,$conexion);
while($row = mysql_fetch_array($result)) {
?>

<form enctype="multipart/form-data" name="form2"><table>
<a href="#" onclick="envia(<?php print $row["id_producto"]; ?>, '<?php print $row["nombre"]; ?>');">
<?php print $row["nombre"]; ?>
</a><br>
</table></form>
<?php
}
mysql_free_result($result);

?>

Desconectado ashrey

  • Fanático
  • ****
  • Mensajes: 431
  • Puntuación: 7
  • Sexo: Masculino
  • Wombat Team
    • Ver Perfil
    • Blog de ABerroteran
Re: paso de valores desde popup a formulario padre
« Respuesta #5 : 26 de febrero de 2009, 04:42:28 pm »
Que bien te ha quedao!!!!!!!!!!!!! Pero te recomendaría que sacaras el código javascript en un archivo .js aparte para que te quede mar ordenado. Y luego lo llames usando el tag script

Desconectado usuario_13

  • Novato
  • *
  • Mensajes: 23
  • Puntuación: 0
    • Ver Perfil
Re: paso de valores desde popup a formulario padre
« Respuesta #6 : 27 de febrero de 2009, 10:25:58 am »
hola ashrey y muy buenos dias, muchas gracias por la recomendacion, hice la modificacion que me sugeriste y funciona mas no se si era lo que me estabas recomendando.
voy a poner de nuevo el codigo para mostrar 2 cosas:

1. utilizo una nueva funcion javascript pero en el formulario padre que me permite centrar el popup en la pantalla.
2. asigne la funcion envia() a un archivo envia.js y desde la ventana popup solo hago el llamado a ese js.

cualquier recomendacion bienvenida sera, muchas gracias de nuevo y saludos.

formulario padre:

<html>
<head>
<script type="text/javascript">
function popup(url) {
var width  = 250;
var height = 300;
var left   = (screen.width  - width)/2;
var top    = (screen.height - height)/2;
var params = 'width='+width+', height='+height; params += ', top='+top+', left='+left; params += ', directories=no'; params += ', location=no'; params += ', menubar=no'; params += ', resizable=no'; params += ', scrollbars=yes'; params += ', toolbar=no'; newwin=window.open(url,'', params);
if (window.focus) {
   newwin.focus()
}
return false;
}
</script>

</head>
<body>
<form name="form1" enctype="multipart/form-data">
<table border="0">
<tr>
<td align="right">
Codigo
</td>
<td>
<input type="text" name="numero">
<a href="javascript: void(0);" onClick="popup('ventana.php')"><img src="shared/images/find.png" width="16" height="16" /></a>
</td>
</tr>
<tr>
<td align="right">
Nombre
</td>
<td>
<input type="text" name="nombre">
</td>
</tr>
</table>
</form>
</body>
</html>

ventana popup:

<script type="text/javascript" src="shared/js/envia.js"></script>

<?php
include 'shared/class_folder/conexion.php';
$sql = "SELECT * FROM producto ";
$result = mysql_query($sql,$conexion);
while($row = mysql_fetch_array($result)) {
echo '<table border="1">';
?>

<form enctype="multipart/form-data" name="form2"><table>
<a href="#" onclick="envia(<?php print $row["id_producto"]; ?>, '<?php print $row["nombre"]; ?>');">
<div align="center"><?php print $row["nombre"]; ?></div>
</a><br>
</table></form>
<?php
echo '</table>';
}
mysql_free_result($result);

?>

envia.js:

// JavaScript Document

function envia(num, nome){

opener.document.form1.numero.value = num;
opener.document.form1.nombre.value = nome;
close();
}

PHP de Venezuela

Re: paso de valores desde popup a formulario padre
« Respuesta #6 : 27 de febrero de 2009, 10:25:58 am »

 

PHP de Venezuela on Facebook