Hallo Allemaal,

Ik zit met een klein probleempje waar ik dus maar niet uitkom.

Ik heb nog een oude website waar ik aan het knutselen ben dat werkt in Frames.
nu heb ik een tool gemaakt waarmee je via Select (dubbelklik) wordt doorverwezen naar een nieuwe pagina.
echter wordt deze in het frame geladen als waar de balk staat. Dit is dus fout.
Ik wil dus graag dat de pagina in het andere frame wordt geladen.

De framenaam waarin het selectbalkje staat weergegeven: Rechterzijde
De framenaam waarin het geladen moet worden: Linkerzijde


Hieronder de code:

<body onLoad="document.Linkerzijde.items.selectedIndex.value=0;">
<select name=items onchange="if(selectedIndex != 0) location = options[selectedIndex].value;" size="17"
style="height:40px;width: 125px; font-size: 10px; font-family: verdana, arial; border: none; color: #DDDDDD; line-height: 15px; background-color:#3e3e3e;">

<?php
$data = mysql_query("SELECT * FROM ledenbeheer");
while ($info = mysql_fetch_array($data)) {
$login = $info['inlognaam'];

echo "<option value=\"/accountnamen.php?p=$login\">$login</option>";
}
?>

Wie o Wie weet het foutje ?
1. zorg dat het iframe een id krijgt:

<iframe id="myFrame">


2. verander niet 'de location van de pagina' maar in plaats daarvan het 'src attribuut' van het element met het id dat je wilt veranderen:
 
<select name=items onchange="if(selectedIndex != 0) document.getElementById('myFrame').src = options[selectedIndex].value;" size="17" 
style="height:40px;width: 125px; font-size: 10px; font-family: verdana, arial; border: none; color: #DDDDDD; line-height: 15px; background-color:#3e3e3e;">
Hmm, Ik werk met de oude Frame optie.
Maar deze get elementbyid myframe werkt ook niet..
Dit heb ik dus nu staan:


<frame src="home.php" name="hoofd">

^^

<select name=items onchange="if(selectedIndex != 0) document.getElementById('hoofd').src = options[selectedIndex].value;" size="17"
style="height:40px;width: 125px; font-size: 10px; font-family: verdana, arial; border: none; color: #DDDDDD; line-height: 15px; background-color:#3e3e3e;">
ik zei geef hem een id. :-)
dus:

<frame src="home.php" id="hoofd" name="hoofd">


Toevoeging op 21/07/2014 22:33:41:

Wel even opletten want ieder id mag slechts éénmaal aan een element toegekend worden.

dit is dus fout:

<frame src="home.php" id="hoofd" name="hoofd">
// vijftig regels verder
<span id="hoofd">
Hmm, ook dat werkt niet.
heb voor de dubbelcheck ook een ander ID gebruikt, maar het laad helemaal niet meer.


Dit is het bestand rechterzijde:

<select name=items onchange="if(selectedIndex != 0) document.getElementById('hoofdframepagina').src = options[selectedIndex].value;" size="17"
style="height:40px;width: 125px; font-size: 10px; font-family: verdana, arial; border: none; color: #DDDDDD; line-height: 15px; background-color:#3e3e3e;">

<option value="/phpbestand.php?x=$login">$login</option>
<option value="/phpbestand.php?x=$login2">$login2</option>
<option value="/phpbestand.php?x=$login3">$login3</option>
<option value="/phpbestand.php?x=$login4">$login4</option>


dit is het bestand index:

<frameset cols="*,170" frameborder="NO" border="5" framespacing="0">
<frameset rows="135,*" cols="*" frameborder="NO" border="0" framespacing="0">
<frame src="bovenbalk.php" name="topFrame" target="hoofd" scrolling="No" noresize >
<frameset rows="*" cols="180,*" framespacing="0" frameborder="NO" border="0">
<frame name="inhoud" target="hoofd" src="menu.php">
<frame src="home.php" id="hoofdframepagina" name="hoofd">
</frameset>


Waarom nog met frames blijven knutselen? Dat is iets dat standaard was in de vorige eeuw.
Ondertussen is er het nodige verandert. Ook inline css is bv. iets wat niet erg gangbaar is meer tegenwoordig.
En de intrede van HTML5.

onchange="if(selectedIndex != 0) location = options[selectedIndex].value;"


veranderen in

onchange="if(selectedIndex != 0) document.rechterZijde.location = options[selectedIndex].value;"


als ik me goed herinner (frames is echt al heel lang geleden gelukkig :P)
Sorry we beginnen nog eens opnieuw. Je hebt het id van de <select> nodig. als je dus een <select id="pindakaas"> hebt dan moet je in onderstaande code 'id-van-je-selectbox' vervangen voor 'pindakaas' met enkele quotes.

onchange="var s = document.getElementById('id-van-je-selectbox'); document.getElementById('hoofd').src = s.options[s.selectedIndex].value;"

Ik heb die if() gedeelte er even uitgelaten zodat je eerst kan zien of het werkt
Op beide bovenstaande manieren laad hij de pagina niet meer.

Ik heb het voor het gemak even zo gemaakt:


<select id=selectbox onchange="var s = document.getElementById('selectbox'); document.getElementById('hoofd').src = s.options[s.selectedIndex].value;"

size="17" 
style="height:40px;width: 125px; font-size: 10px; font-family: verdana, arial; border: none; color: #DDDDDD; line-height: 15px; background-color:#3e3e3e;">
<option>Selecteer een optie</option> 
<option value="/accountnamen.php">Optie1</option> 
<option value="/accountnamen.php">Optie2</option> 
<option value="/accountnamen.php">Optie3</option> 
</select>



Op deze manier werkt het wel maar wordt het dus in het verkeerde frame geladen:

<td> 
<select onchange="if(selectedIndex != 0) location = options[selectedIndex].value;"
size="17" 
style="height:40px;width: 125px; font-size: 10px; font-family: verdana, arial; border: none; color: #DDDDDD; line-height: 15px; background-color:#3e3e3e;">
 
<option>Selecteer een optie</option> 
<option value="/accountnamen.php">Optie1</option> 
<option value="/accountnamen.php">Optie2</option> 
<option value="/accountnamen.php">Optie3</option> 
</select>
</td>
Het formulier:
<form id="form" target="hoofd" method="post" action="hoofd.php">
<select name="naam" onchange="document.getElementById('form').submit();">

En in hoofd.php:
<?php
if(isset($_POST['naam']))
{
// doe iets
}
else
{
// standaard inhoud
}
?>
?>

Reageren