chiusura pop-up e passaggio variabile

Chiudo un form pop-up, che ricarica il form padre, con il seguente codice

<a href="#" onclick="opener.window.location=opener.window.location;self.close();return false;">Chiudi1</a>

.

Come posso fare per passare una variabile ($variabile) al form padre?

grazie giovanni

inviato 9 anni fa
bonann23
X 0 X

ma c'è bisogno fi tutto questo macello??

<a href="#" onclick="opener.window.location=opener.window.location;self.close();return false;">Chiudi1</a>

Basta un semplice

<a href="javascript:close()">Chiudi1</a>

Per il passaggio della variabile..sinceramente...nn saprei come fare...magari ci penso un pò e ti faccio sapere :D

risposto 9 anni fa
Samleo
X 0 X

Alla chiusura del pop-up ho bisogno, come ho già scritto, di ricaricare il form padre in modo da rendere visibili le modifiche apportate al db, ecco perchè utilizzo il codice che ho postato.

giovanni

risposto 9 anni fa
bonann23
X 0 X

Sì ma non capisco il senso di questo: opener.window.location=opener.window.location;

Comunque anche io ho fatto qualcosa del genere, solo che non ho l'esempio sotto mano, ora cerco qualcosa di analogo e te lo posto qui.

risposto 9 anni fa
Marco Grazia
X 0 X

Sono bloccato ormai da dieci giorni sul quesito che ho posto e nonostante le varie ricerche fatte non ho trovato alcuna soluzione.

L'unica soluzione che mi resta per superare l'ostacolo è quella di non aprire un form popup bensì un form normale dal quale, alla sua chiusura,  possa ricevere non solo le variabili di cui ho bisogno ma ricaricare il form padre in modo da poter utilizzare quanto inserito nel form appena chiuso.

Spero d'essere stato chiaro e che qualcuno possa darmi una mano, perchè non vorrei abbondonare la soluzione del popup in quanto penso sia più elegante.

giovanni

risposto 9 anni fa
bonann23
X 0 X

supponi che nella pagina principale(PADRE) hai un campo prezzo e la variabile da passare dal PopUp  sia $valore

<input type="button" name="Submit" value="conferma" 
   onclick="window.opener.document.getElementById('prezzo').value 
                   = '<?php echo $valore; ?>'" />

 :bye:

risposto 9 anni fa
leoneweb
X 0 X

Ho inserito il seguente codice:

<form action="NOME_FORM_PADRE.php" method="GET" enctype="text/plain" name="esci">
 <input type="button" name="Submit" value="conferma" 
   onclick="window.opener.document.getElementById('prezzo').value 
                   = '<?php echo $_POST["prezzo"]; ?>'" />
</form>

Purtroppo non chiudo il popup e ricevo il seguente errore:

window.opener.document.getElementById(....) è nullo o non è un oggetto

giovanni

risposto 9 anni fa
bonann23
X 0 X

devi mettere:

<script>
function autoClose()
{
window.close();
} 
</script>
<form action="" method="post   name="esci" onclick="autoClose()">
<input type="button" name="Submit" value="conferma" 
   onclick="window.opener.document.getElementById('prezzo').value 
                   = '<?php echo $_POST["prezzo"]; ?>'" />
</form>

ma poi nella pagina padre hai un campo che si chiama prezzo e la variabile che

devi passare l'hai rinominata prezzo??

 :bye:

risposto 9 anni fa
leoneweb
X 0 X

oppure:

<script>

function autoClose()

{

window.close();

}

</script>

<form action="" method="post   name="esci" onclick="autoClose()">

<?php

echo "<input type=\"submit\" name=\"Submit2\" value=\"conferma\"  onclick=\"window.opener.document.getElementById('prezzo').value = '$prezzo'\" />";

?>

 :bye:

risposto 9 anni fa
leoneweb
modificato 9 anni fa
X 0 X

Purtroppo nel form padre non riesco a catture il valore della variabile:$_POST["prezzo"]

Puoi darmi ancora una mano?

grazie giovanni

risposto 9 anni fa
bonann23
X 0 X

Pensi che inserendo, nel form popup, dei campi <input type="hidden" .......> posso riuscire a passare la variabile tra il popup ed il form padre?

Se si posso trattarli normalmente?

grazie giovanni

risposto 9 anni fa
bonann23
X 0 X

mi puoi postare la pagina padre e quella di PopUp

vedo un pò

 :bye:

risposto 9 anni fa
leoneweb
X 0 X

In definitiva il mio obiettivo è quello di far fare un refresh alla pagina padre in modo da poter avere nella select corrispondente all'inserimento fatto nel Db.

Ti invio il file form padre:

<html>
  <head>
    <title>Bonann23</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   
    <script type="text/javascript" src="../js/script.js"></script>
    <script type="text/javascript" src="../js/sorttable.js"></script>
     <link rel="stylesheet" type="text/css" href="../css/style_panel.css">
  </head>
   <body>
 <table cellspacing="0" width="100%">
<tr>

<td align="center"><a href="pannellocontrollo.php"><img src="../images/logo_big.jpg" alt="vai al pannello di controllo" title= "vai al pannello di controllo"  /></a></td></tr></table>

 
 <table width="100%" border="1">

<tr>
<form method="POST"  name="casa" action=<?php $_SERVER["PHP_SELF"]?> >
   <td colspan="4" align="center"><strong>* INSERIMENTO ARTICOLO *</strong></td>
   
</tr>
<tr>
   <td>Codice Prodotto</td>
   
   <?php
   if (isset($_GET["codice_prodotto"])) {
$codice_prodotto=$_GET["codice_prodotto"];
   } elseif (isset($_POST["ob_codice_prodotto"])) {
$codice_prodotto=$_POST["ob_codice_prodotto"];
}
else {
$codice_prodotto="";   
} 
?>
   <td><input type="text" name="ob_codice_prodotto"  value="<?php  echo  $codice_prodotto ; ?>" ></td>
   <td>&nbsp;</td>
   <td>&nbsp;</td>
</tr>
<!-- INIZIO SPAZIO INSERITO -->



<!--  SPAZIO INSERITO -->
<tr>
   <td>Settore</td>
   <?php 
   $mysql="";
$mysql= "SELECT * FROM tcategorie ORDER BY categoria";
//echo $mysql;
$result = mysql_query($mysql,$db) or die("Errore - caricamento select categorie");
 echo "<td><select name='ob_idcategoria' onchange='this.form.submit()'>";
   
//echo $mysql;

         
           echo"<option value = '0'>";
              echo"--Scegli--";
              echo "</option>";
if (isset($_GET["idcategoria"])) {

   } elseif (isset($_POST["ob_idcategoria"])) {
$idcategoria=$_POST["ob_idcategoria"];

}
else {
$idcategoria=0;   
} 
while ($myrow= mysql_fetch_array($result)) {  
   if ($idcategoria== $myrow["id_categoria"]) {
  echo"<option value=".$myrow["id_categoria"]." selected >".$myrow["categoria"]."</option>";
} else {
   echo"<option value=".$myrow["id_categoria"].">".$myrow["categoria"]."</option>";
}   
                        }
                        mysql_free_result($result);
                     
                     ?>
                        </select></td>

   



<td>   <a  href="javascript:yodawind_block('inserisci_nuova_voce_categoria_popup.php','insert','500','400')">Inserisci nuova voce</a></td>

      <td>&nbsp;</td>
   
</tr>




<tr>
   <td>Casa produttrice</td>
   <?php 
   $mysql="";
$mysql= "SELECT 
  tcasa_produttrice_per_categoria.idcategoria,
  tcasa_produttrice_per_categoria.idcasa_produttrice,
  tcase_produttrici.casa_produttrice
FROM
  tcasa_produttrice_per_categoria
  LEFT OUTER JOIN tcase_produttrici ON (tcasa_produttrice_per_categoria.idcasa_produttrice = tcase_produttrici.id_casa_produttrice)
  WHERE tcasa_produttrice_per_categoria.idcategoria=".$idcategoria."
   ORDER BY casa_produttrice";
//echo $mysql;
$result = mysql_query($mysql,$db) or die("Errore - caricamento select categorie");
 echo "<td><select name='ob_idcasa_produttrice' onchange='this.form.submit()'>";
   


         
           echo"<option value = '0'>";
              echo"--Scegli--";
              echo "</option>";

if (isset($_GET["idcasa_produttrice"])) {
$idcasa_produttrice=$_GET["idcasa_produttrice"];
   } elseif (isset($_POST["ob_idcasa_produttrice"])) {
$idcasa_produttrice=$_POST["ob_idcasa_produttrice"]; 
}
else {
$idcasa_produttrice=0;   
}



while ($myrow= mysql_fetch_array($result)) {  
   if ($idcasa_produttrice== $myrow["idcasa_produttrice"]) {
  echo"<option value=".$myrow["idcasa_produttrice"]." selected >".$myrow["casa_produttrice"]."</option>";
} else {
   echo"<option value=".$myrow["idcasa_produttrice"].">".$myrow["casa_produttrice"]."</option>";
}   
                        }
                        mysql_free_result($result);
                     ?>
                        </select></td>

   



<td>
<?php
if ($idcategoria<>0) {
echo "<a href=\"javascript:yodawind_block('inserisci_nuova_voce_fornitore_popup.php?idcategoria=".$idcategoria."','popup',520,500);\">Inserisci nuova voce</a>";
   } else {
echo" Per inserire una nuova voce devi prima scegliere UNA CATEGORIA!";
}
?>
   
   
   </td>

      <td>&nbsp;</td>
   
</tr>

<!-- INIZIO SPAZIO INSERITO -->

<tr>
   <td>Serie</td>
   
   <?php 
   $mysql="";
$mysql= " SELECT 
tserie_per_categoria_e_casa_produttrice.idserie, 
tserie_per_categoria_e_casa_produttrice.idcategoria, 
tserie_per_categoria_e_casa_produttrice.idcasa_produttrice, 
tserie.serie 
FROM tserie_per_categoria_e_casa_produttrice 
LEFT OUTER JOIN tserie 
ON (tserie_per_categoria_e_casa_produttrice.idserie = tserie.id_serie) 
WHERE tserie_per_categoria_e_casa_produttrice.idcategoria=".$idcategoria." 
AND tserie_per_categoria_e_casa_produttrice.idcasa_produttrice=".$idcasa_produttrice." 
ORDER BY tserie.serie ";
//echo $mysql;
$result = mysql_query($mysql,$db) or die("Errore - caricamento select serie");
 echo "<td><select name='ob_idserie' onchange='this.form.submit()'>";
   
//echo $mysql;

         
           echo"<option value = '0'>";
              echo"--Scegli--";
              echo "</option>";

if (isset($_GET["idserie"])) {
$idserie=$_GET["idserie"];
   } elseif (isset($_POST["ob_idserie"])) {
$idserie=$_POST["ob_idserie"]; 
echo "ci sono";
}
//else {
//$idserie=0;    
//}



while ($myrow= mysql_fetch_array($result)) {  
   if ($idserie== $myrow["idserie"]) {
 echo"<option value=".$myrow["idserie"]." selected >".$myrow["serie"]."</option>";
} else {
  echo"<option value=".$myrow["idserie"].">".$myrow["serie"]."</option>";
}   
                        }
                     mysql_free_result($result);
                     ?>
                        </select></td>

   



<td>   
<?php
   if ($idcasa_produttrice<>0 AND $idcategoria<>0) {
echo "<a href=\"javascript:yodawind_block('inserisci_nuova_voce_serie_popup.php?idcategoria=".$idcategoria."&amp;idcasa_produttrice=".$idcasa_produttrice."','popup',520,500);\">Inserisci nuova voce</a>";
   } else {
echo" Per inserire una nuova voce devi prima scegliere UNA CATEGORIA ED UN FORNITORE!";
}
?>

</td>

      <td>&nbsp;</td>
   
</tr>

<!-- FINE SPAZIO INSERITO -->
<tr>
   <td>Descrizione</td>
   
<td><input type='text' name='descrizione' ></td>


   <td>&nbsp;</td>

      <td>&nbsp;</td>
   
</tr>
<tr>
<td  align="right" colspan="2"> 

<input type="submit" name="salva" value="Salva">
</td>
    
</form>  
</tr>
</form>

</table> 
  
  
  
</body>
</html>

Form popup figlio

<?php 
session_start();
if ($_SESSION['id_utente']) {
include"head_gestione.inc.php";
?>
<body>
<table cellspacing="0" colspan="2" class="tableWhite">
<tr>

<td  class="logoLeft"><img src="../images/logo_small.jpg"/></td>
</tr>
<?php
 include "../../files_include/config.inc.php";
if (isset($_POST["salva"])AND isset($_POST["nuova_serie"])AND $_POST["nuova_serie"]<>"" ) {
      $mysql="";
   $mysql= "SELECT * FROM tserie 
             WHERE  tserie.serie='".$_POST["nuova_serie"]."'";
      //   echo $mysql;
             $result = mysql_query($mysql,$db) or die("Errore");
             $myrow= mysql_fetch_array($result);
             $numrows=mysql_num_rows($result);
             if ($numrows>0) {
                    $mysql="";
                    $mysql=" SELECT * FROM tserie_per_categoria_e_casa_produttrice
                           WHERE idserie=".$myrow["id_serie"]."
                         AND idcategoria=".$_POST["idcategoria"]."
                         AND idcasa_produttrice=".$_POST["idcasa_produttrice"];
                  $result_serie = mysql_query($mysql,$db) or die("Errore");
                  $numrows_serie=mysql_num_rows($result_serie);
                  if ($numrows_serie>0) {
                         echo "ATTENZIONE VOCE GIA' PRESENTE IN ELENCO";
                  } else {
                     $mysql="";
$mysql = "INSERT INTO tserie_per_categoria_e_casa_produttrice (idserie, idcategoria, idcasa_produttrice) VALUES ('".$myrow["id_serie"]."', '".$_POST["idcategoria"]."' ,'".$_POST["idcasa_produttrice"]."')";
//echo $mysql;
$result = mysql_query($mysql) or die("Errore - Query INSERIMENTO FORMA - CONTATTARE WEBMASTER INDICANDO ERRORE 0141");
                  }                        
                        } else {                            
   $mysql="";
$mysql = "INSERT INTO tserie (serie) VALUES ('".$_POST["nuova_serie"]."')";
//echo $mysql;
$result = mysql_query($mysql) or die("Errore - Query INSERIMENTO FORMA - CONTATTARE WEBMASTER INDICANDO ERRORE 0142");
$mysql="";
$mysql = "INSERT INTO tserie_per_categoria_e_casa_produttrice (idserie, idcategoria, idcasa_produttrice) VALUES ('".mysql_insert_id()."', '".$_POST["idcategoria"]."' ,'".$_POST["idcasa_produttrice"]."')";
//echo $mysql;
$a=mysql_insert_id();
$result = mysql_query($mysql) or die("Errore - Query INSERIMENTO FORMA - CONTATTARE WEBMASTER INDICANDO ERRORE 0142");
                        }          
    echo " </td>";
echo "     </tr>";
echo "      </form>";
echo "       <td >";

    if (!isset($_POST["salva"])) {
echo "<a href='javascript:window.close();' class='chiudi' title ='chiudi'>Chiudi</a>  ";
   } else {
?>
<form action="" method="POST"   name="esci" onclick="autoClose()">
<input type="submit" name="conferma" value="Conferma" 
   onclick="window.opener.document.getElementById('ob_idserie').value 
                   = <?php echo $a; ?>" />
    <input type="text" name="ob_idserie" value="<?php
   echo  $a;
?>">                 
</form>
   <?php    
} 

    
}








   
   


 // fine salva
else  {
  ?> 
<tr>
    <td class="titolo"><h4>INSERISCI NUOVA VOCE SERIE PRODOTTI</h4></td></tr>
  <tr>
  <td>
  <table width="100%" cellspacing="0" border="0">
    <tr>
     <form name="form1" method="post" action="inserisci_nuova_voce_serie_popup.php">
            
           <input type="text" name="nuova_serie" value="">   
           <input type="hidden" name="idcasa_produttrice" value="<?php
   echo $_GET["idcasa_produttrice"];
?>">
           <input type="hidden" name="idcategoria" value="<?php
   echo $_GET["idcategoria"];
?>">         
               
  </tr>

      



  <tr>
    <td >
      <input name="salva" value="Salva" type="submit" /></td>
      </form>
       <td >
       <?php  
       if (!isset($_POST["salva"])) {
echo "<a href='javascript:window.close();' class='chiudi' title ='chiudi'>Chiudi</a>  ";
} 

?>      
      </td>
  </tr>
</table>
</body>
</html>
<?php 
}
}
?>     

grazie giovanni

risposto 9 anni fa
bonann23
X 0 X

l'ho guardato e riguardato ma mi sembra cha vada bene apparte che manca sempre

lo script :

<script>
function autoClose()
{
window.close();
} 
</script>

poi prova a invertire anche se non dovrebbe centrare nulla

<form action="" method="POST"   name="esci" onclick="autoClose()">
 <input type="text" name="ob_idserie" value="<?php echo  $a; ?>">
 <input type="submit" name="conferma" value="Conferma" 
 onclick="window.opener.document.getElementById('ob_idserie').value= <?php echo $a; ?>" />                 
</form>

poi xchè

$_GET["codice_prodotto"];

e non POST ??

 :bye:

risposto 9 anni fa
leoneweb
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda