waarde variabele van iframe naar parent

  • Onderwerp starter Onderwerp starter dapee
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

dapee

Nieuwe gebruiker
Lid geworden
2 jun 2008
Berichten
2
Ik heb een zoekpagina. Als ik op de knop "zoek rubriek" druk dan opent zich een div (rub) waarin een iframe (rub1) zit met daarin een ander iframe (rubriek) met de verschillende mogelijkheden.
De bedoeling is dat bij een onClick in het iframe (rubriek) de waarde van het element in het iframe (rubriek) aan de variabele met het id 'wat' in de parent gegeven wordt en dat de div (rub) op hidden geplaats wordt.
Ik krijg de waarde van het element aangeklikt in het iframe, maar de waarde wordt niet doorgegeven en de div wordt niet op hidden gezet.
Alle hulp is zeker welkom.
Moet ik de functie selectrub() in het iframe zetten of in de parent?

de zoekfunctie
HTML:
<script type="text/javascript"><!--

function showhide(el){

el=document.getElementById(el);
el.style.display=(el.style.display=="block")?"none":"block";

}

//--></script>
...
<div ID="rub" name="rub" align="center"
 STYLE="position: absolute;top:80px;margin-left:8px;margin-right:auto; text-align:left; width:498px; height:200;
  background-color:#FFFFFF;display:block;border-bottom:1px solid #9FBBDF;border-left:1px solid #9FBBDF;border-right:1px solid #9FBBDF;">
 <table width="500" height='250' cellpadding="2" cellspacing="0" bgcolor="#9FBBDF" style="font-family:arial;font-size:11px;color:#fff;" >
  <tr>
   <td >&nbsp;&nbsp;&nbsp;
    <strong>Selecteer een rubriek</strong>
   </td>
   <td align="right"><img src="close1.jpg" border="0" onClick="showhide('rub')">&nbsp;
   </td>
  </tr>
  <tr>
   <td colspan="2" bgcolor="#9FBBDF" align="center" valign="middle">
    <iframe name=rubriek id=rubriek width=490 height=220 scrolling=no  frameborder="0" src="sortrubriek.php">

    </iframe>


       </td>
      </tr>
 </table>
</div>
...
<form action="searchresult.php" name="zoek" method="POST" >
   ...
      <strong>Wie of wat</strong><br><input type=text name='wat' id='wat' style='border:1px solid black;' size="40">
   ...
     

     <td align="center"><input type="button" name="opener" value="Kies een rubriek" onClick="showhide('rub');">
     </Td>

 ..

</form>

Sortrubriek.php met daarin de opening van iframe 'rub1'
HTML:
...
    for ($x=65;$x<=90;$x++){
           echo "<b><a href='sortrub.php?sort=".chr($x)."' target='rub1' class='brood'>".chr($x)." </a></b>&nbsp;&nbsp;";
    }
    echo "<b><a href='sortrub?sort=".chr($x)."' target='rub1' class='brood'>0-9</a></b>";

     echo "</td></tr></table>";

     ?>
     <iframe name='rub1' frameborder="0" width="480" height="176" scrolling="auto" src="sortrub.php">
     </iframe>

sortrub.php met daarin de opsomming van de verschillende mogelijkheden

HTML:
<script language="JavaScript">
<!--
function selectrub(){
    parent.document.getElementById('wat').value= document.popUpForm.formVar.value;

    parent.document.getElementById('rubriek').style.display = 'hidden';


}
//-->
  </script>

<form name="popUpForm" >
 <input type="hidden" name="formVar">

<?

...
$key=$_GET['sort'];
if (!$key){
    $key='a';
}
       $rub1=mysql_query("select * from rubriek where substr(rubriek,1,1)='$key' order by rubriek");
       echo '<table  cellpadding="2" cellspacing="2" bgcolor="#ffffff"   style="font-family:arial;font-size:11px;color:black;">';
       while ($rub=mysql_fetch_object($rub1)){

           echo "<tr><td ><a style='cursor: pointer;' onClick=\"javascript:document.popUpForm.formVar.value='".$rub->rubriek."'; selectrub(this); \" >". $rub->rubriek ."</a></td></tr>";

       }
...
       </form>
 
Laatst bewerkt:
opgelost

het selectrub script moest zijn

function selectrub(){
window.top.document.getElementById('wat').value= document.popUpForm.formVar.value;
window.top.showhide('rubriek');
}

Werkt in IE7, FF2 en Opera
 
Je kunt ook parent. gebruiken dat is 1 omhoog.
PHP:
parent.showhide('rubriek');
parent.parent. is 2 omhoog en top. is de hoogste.

Vanuit een hoger niveau naar een frame gebruik je de name van het frame, bv
PHP:
rubriek.varb = 12;


Vr.Gr. Egel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan