Enviar dato de popup a página padre

Tengo el siguiente script para enviar un dato de un popup a una página padre pero no lo envía me marca error este es el código del
popup.php
<html>
<head>
<script>
function envia(){
opener.document.frmfol.A17.value = document.frmfol.select.value;
close();
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Eliminacion de registros con AJAX</title>
<script language="JavaScript" type="text/javascript" src="ajax.js"></script>
</head>
<body>
<FORM name="frmfol">Concepto<br>
<select name="A17" id="A17" style="width:70px">
<?php
//Conexion con la base
mysql_connect("localhost","root","yoyoyo");
//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select A17   from ca1  ";
$result=mysql_db_query("tacop",$sSQL);
//Mostramos los registros en forma de menú desplegable
while ($row=mysql_fetch_array($result))
{echo '<option >'.$row["A17"]. '</option >';
 }
mysql_free_result($result);
echo '<input type="button" value="Recupera" onClick="envia()">';
//$result = mysql_db_query($result) or die(mysql_error());
?>
 </select>
</form>
</body>
</html>
Esta es la pagina padre
<head>
<script language="JavaScript">
function buscar(){
open("popup1.php");
}
</head>
<body>
<?php
mysql_connect("localhost","root","yoyoyo") ;
mysql_select_db("tacop");
$C=mysql_query("SELECT * FROM finiquito WHERE A35=".$_POST["A35"]);
if ($registro_hija=mysql_fetch_array($C))
{
echo "<form name=\"frmfol\"   method=\"post\"   action=\"pagina3.php\">\n";
 echo  "
<table align='center'>
";
  echo  "
<tr>
";
   echo  "<th >";
echo  "<select name=\"A17\" idname=\"A17\"  >";
  echo "<option value=\"".$registro_hija['A17']."\">".$registro_hija['A17']."</option>";
  echo "<input type='button' value='buscar' onClick='buscar()'>";
     echo  "</td>
";
  echo  "
<td>";

1 respuesta

Respuesta
1
A17 parece ser un select, el cual no acepta que se modifique su value. Tendrás que ciclar por el contenido de dicho select, hasta encontrar el option con el valor indicad, y seleccionar este.
Te recomiendo usar Mootools, jQuery, Prototype o cualquiera de las librerías de javascript.
Marcelo
Gracias experto a ver si entendí le cargo cualquiera de las librerías que me menciona a mi script y el código lo dejo tal cual nada más cambiaría esta linea
<script src="mootools -1.11.js" type="text/javascript"></script>
¿Dependiendo de la librería?
Gracias y Saludos
Y luego tienes que usar algo tipo
 var opciones = $('A17').getElements('option');
 opciones.each(function(option, i){
  if(option.getProperty('value') == valor){
   option.setProperty('selected', true);
  }
}
Te recomiendo usar la ultima version de mootools (la 1.11 es demasiado vieja)
Gracias experto descargue esta version mootools-1.2.4-core-jm y esta mootools-1.2.4-core-nc
supongo que puedo usar cualquiera de las y las debe de poner así
<script src="mootools-1.2.4-core-jm.js" type="text/javascript"> ó
<script src="1.2.4-core-nc.js" type="text/javascript">
el codigo lo puedo poner dentro de mi funcion enviar de la pagina del popup?
var opciones = $('A17').getElements('option');
 opciones.each(function(option, i){
  if(option.getProperty('value') == valor){
   option.setProperty('selected', true);
  }
}
Gracias y saludos
Nono, tiene que usar solo una, la jm posiblemente sea la version comprimida (ocupa menos espacio, por que se eliminan todos los espacio, saltos de linea, tabs, etc.
el codigo lo deberías poner dentro de tu funcion, y recuerda que donde dice option.getProperty('value') == valor el valor es la variable que estas pasando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas