JS & dynamische tekstboxen.

Status
Niet open voor verdere reacties.

dejongetje

Gebruiker
Lid geworden
15 sep 2006
Berichten
11
Het volgende krijg ik niet voor elkaar :

een php pagina wordt geladen, waar een (dynamisch) aantal textboxen wordt gegenereerd, tesamen met dezelfde hoeveelheid comboboxen.
Wanneer in deze combobox een andere waarde wordt geselecteerd (2 mogelijke waardes), dan dient het bijbehorende textbox die waarde over te nemen.
Ik krijg de foutmelding : Object vereist

Heb me helemaal suf gezocht, maar kan nergens iets vergelijkbaars vinden.

Javascript:
<script>
function geef_waarde_kind(combobox_naam,textbox_naam)
{
var tournament_kind = document.getElementById(combobox_naam).value;
window.alert(tournament_kind);
document.adminForm.textbox_naam.value = tournament_kind;
}
</script>

PHP code

for($i=1 ; $i <= $rondes ; $i++)
{
?>
<tr class="add">
<td><?php echo "Ronde " .$i ?> </td>
<td><input type="text" name="ronde_type_<?php echo $i;?>" value="<?php echo $type;?>" /> <BR>
<select name="Tournament_kind_selected_<?php echo $i;?>" onchange="geef_waarde_kind(Tournament_kind_selected_<?php echo $i;?>,ronde_type_<?php echo $i;?>)" id="Tournament_kind_selected_<?php echo $i;?>">
<?php
echo "<option value='Knock Out'>Knock Out<br/>";
echo "<option value='Poule'>Poule<br/>";
?>
</select>
</td>
<td><input type="text" name="aantal_poules" value="" /> </td>
<td><input type="text" name="clubs_per_poule" value="" /> </td>
<?php } ?>

Iemand enig idee wat ik fout doe, en/of hoe het anders/beter kan ?
Alle hulp is welkom.
Alvast bedankt !
 
Ik quote:
[JS]document.getElementById()[/JS]
Dus, get element by ID. Bij jou hebben ze alleen namen:
HTML:
<select name="" ...>
Dit moet dus wel een ID hebben:
HTML:
<select id='' ...>
Daarnaast moet je je variabelen in javascript wel quoten. Dus niet
HTML:
<select name="Tournament_kind_selected_<?php echo $i;?>" onchange="geef_waarde_kind(Tournament_kind_selected_<?php echo $i;?>,ronde_type_<?php echo $i;?>)" id="Tournament_kind_selected_<?php echo $i;?>">
maar zoiets:
HTML:
<select name="Tournament_kind_selected_<?php echo $i;?>" onchange="geef_waarde_kind('Tournament_kind_selected_<?php echo $i;?>', 'ronde_type_<?php echo $i;?>');" id="Tournament_kind_selected_<?php echo $i;?>">



:thumb:
 
Ik quote:Dus, get element by ID. Bij jou hebben ze alleen namen:Dit moet dus wel een ID hebben:
HTML:
<select id='' ...>
Daarnaast moet je je variabelen in javascript wel quoten. Dus nietmaar zoiets:
HTML:
<select name="Tournament_kind_selected_<?php echo $i;?>" onchange="geef_waarde_kind('Tournament_kind_selected_<?php echo $i;?>', 'ronde_type_<?php echo $i;?>');" id="Tournament_kind_selected_<?php echo $i;?>">



:thumb:


Dank voor de uitleg zover Vegras.
Ik denk dat ik nog steeds iets niet goed doe, ik heb het volgende veranderd :

for($i=1 ; $i <= $rondes ; $i++)
{
?>
<tr class="add">
<td><?php echo "Ronde " .$i ?> </td>
<td><input type="text" name="ronde_type_<?php echo $i;?>" value="<?php echo $type;?>" /> <BR>
<select id="Tournament_kind_selected_<?php echo $i;?>" onchange="geef_waarde_kind('Tournament_kind_selected_<?php echo $i;?>,ronde_type_<?php echo $i;?>')">
<?php
echo "<option value='Knock Out'>Knock Out<br/>";
echo "<option value='Poule'>Poule<br/>";
?>
</select>
</td>
<td><input type="text" name="aantal_poules" value="" /> </td>
<td><input type="text" name="clubs_per_poule" value="" /> </td>
<?php } ?>

Maw, ik heb de single quotes geplaatst om de code naar de js aanroep, en de select name veranderd naar select id
De javascript functie zelf heb ik niet veranderd.
De foutmelding is iig nog steeds hetzelfde.
Zou je nog eens een blik willen werpen ?
 
yea, je mist wat quotes. Maak van dit
HTML:
<select id="Tournament_kind_selected_<?php echo $i;?>" onchange="geef_waarde_kind('Tournament_kind_selected_<?php echo $i;?>,ronde_type_<?php echo $i;?>')">
dit:
HTML:
<select id="Tournament_kind_selected_<?php echo $i;?>" onchange="geef_waarde_kind('Tournament_kind_selected_<?php echo $i;?>', 'ronde_type_<?php echo $i;?>')">
en van dit:
HTML:
<td><input type="text" name="ronde_type_<?php echo $i;?>" value="<?php echo $type;?>" /> <BR>
dit:
HTML:
<td><input type="text" id="ronde_type_<?php echo $i;?>" value="<?php echo $type;?>" /> <BR>
en dan zou ie t moeten doen. Daarnaast werkt je script zowiezo niet, want er is geen value attribuut bij een selectbox, dus maak er dit van:[js]function geef_waarde_kind(combobox_id, textbox_id)
{
var select = document.getElementById(combobox_id);
var sItem = select.options[select.selectedIndex];

alert(sItem);

document.getElementById(textbox_id).value = sItem;
}[/js]
 
Laatst bewerkt:
yea, je mist wat quotes. Maak van ditdit:
HTML:
<select id="Tournament_kind_selected_<?php echo $i;?>" onchange="geef_waarde_kind('Tournament_kind_selected_<?php echo $i;?>', 'ronde_type_<?php echo $i;?>')">
en van dit:dit:
HTML:
<td><input type="text" id="ronde_type_<?php echo $i;?>" value="<?php echo $type;?>" /> <BR>
en dan zou ie t moeten doen. Daarnaast werkt je script zowiezo niet, want er is geen value attribuut bij een selectbox, dus maak er dit van:[js]function geef_waarde_kind(combobox_id, textbox_id)
{
var select = document.getElementById(combobox_id);
var sItem = select.options[select.selectedIndex];

alert(sItem);

document.getElementById(textbox_id).value = sItem;
}[/js]


Tja, die 2 single quotes kreeg ik ook in de gaten na de post :confused:
Nu heb ik het javascript functie letterlijk overgenomen.
Ook de name veranderd in ID. Nu ontstaat er technisch gesproken geen fout meer,
maar het enige wat nu niet klopt, is dat niet de waarde vanuit de combobox wordt neergezet, maar een objectnaam : [object HTML Object element ]

Nog wat tips voor de bonus ?

P.S.
Moet er eerlijk bij bekennen dat ik vwb JS nog maar net kom kijken, maar dat had je vast al wel in de gaten :)
 
Tja, die 2 single quotes kreeg ik ook in de gaten na de post :confused:
Nu heb ik het javascript functie letterlijk overgenomen.
Ook de name veranderd in ID. Nu ontstaat er technisch gesproken geen fout meer,
maar het enige wat nu niet klopt, is dat niet de waarde vanuit de combobox wordt neergezet, maar een objectnaam : [object HTML Object element ]

Nog wat tips voor de bonus ?

P.S.
Moet er eerlijk bij bekennen dat ik vwb JS nog maar net kom kijken, maar dat had je vast al wel in de gaten :)


Toch nog zelf de laatste punt op de I kunnen zetten.
var sItem = select.options[select.selectedIndex];
veranderd in
var sItem = select.options[select.selectedIndex].value;

Hartstikke bedankt ! :thumb::thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan