login  Naam:   Wachtwoord: 
Registreer je!
 Forum

InnertHTML werkt niet helemaal

Offline DaOxx - 18/04/2005 14:00 (laatste wijziging 18/04/2005 17:28)
Avatar van DaOxxPHP beginner Hallo allen,

Momenteel heb ik een imageuploader waar je mappen aan kan maken en foto's kunt uploaden in een bepaalde map. Nu heb ik een probleem.

Als men een product wil toevoegen aan de site kan men een afbeelding kiezen, ik had het zo ingedachten door 2 select boxjes.

Ik heb wat zitten proberen met een frame en innerHTML maar toch wil het niet lekker werken.

Dit is de code:

HET FORMULIER GEDEELTE
  1. <tr>
  2. <td style="width: 30%; font-weight: bold">Afbeelding:</td>
  3. <td style="width: 20%">
  4. <select style="width: 131px" name="dir" size="5" onchange="getImages(this.value)">
  5. <option value="0" selected>Kies directory...</option>
  6. <option value="5">Gijs</option>
  7. <option value="1">Horloges</option>
  8. <option value="2">Kettingen</option>
  9. <option value="4">Overig</option>
  10. <option value="3">Sieraden</option>
  11. </select>
  12. </td>
  13. <td>
  14. <select style="width: 131px" name="afbeelding" id="imagesArea" size="5">
  15. <option value="0" selected>Kies afbeelding...</option>
  16. </select>
  17. </td>
  18. </tr>

De 2e selectbox geef ik een id mee zodat ik er iets mee kan in js met getElementById

Nu heb ik een javascript die word aangeroepen als de eerste selectbox veranderd namelijk deze:

  1. function getImages(dirId)
  2. {
  3. document.frames['iAfbeelding'].location.href="admin/afbeelding.php?id=" + dirId;
  4. }

In het formulier heb ik ook de volgende frame staan:
  1. <iframe width="1" height="1" id="iAfbeelding" name="iAfbeelding" src="about:blank" frameborder="0"></iframe>

Het javascript roept een pagina aan in de frame die de afbeelding bij de map zal uitlezen.

Tot nu toe gaat alles nog goed de waardes worden netjes uit de database gelezen. Ik maak een variabelen aan in php waar alle options aan vast zitten.

Het grote probleem waar ik nu mee zit en ik kom er echt niet uit is:

in afbeelding.php probeer ik zo de waardes terug te stoppen:
  1. <script>addOption(<?php echo $sOptions; ?>);</script>
  2.  
  3. <script>
  4. function addOption(option)
  5. {
  6. top.document.getElementById('imagesArea').innerHTML += option;
  7. }
  8. </script>


maar dit werkt niet! 

Weet iemand hoe het wel moet?

Heel veel dank voor degene die het weet

Edit door Mokka: Gebruik die damn code tags toch eens mensen, dit wordt vervelend:o

2 antwoorden

Gesponsorde links
Offline Thomas - 18/04/2005 14:45 (laatste wijziging 18/04/2005 15:43)
Avatar van Thomas Moderator Options moeten op de volgende manier aangemaakt worden:

  1. document.forms[<form_naam>].elements[<selectbox_naam>].options[<option_index>] = new Option("<option_tekst>");
  2. document.forms[<form_naam>].elements[<selectbox_naam>].options[<option_index>].value = <value_van_de_option>;


Hierbij komt ook nog het probleempje dat je niet weet bij welke option-index je bent.

Is de parameter option in addOption trouwens de tekst tussen de option-tags, of de value, of beide ?

In jouw geval zul je zoiets moeten doen als (als het mogelijk is om op deze manier tussen frames te communiceren althans):

  1. function addOption(option) {
  2. // naam van je form ???
  3. // laatste index bepalen
  4. var laatste_index = top.document.forms['<form_naam_hier>'].elements['afbeelding'].length;
  5.  
  6. // optie aanmaken (met 'tekstuele omschrijving')
  7. top.document.forms['<form_naam_hier>'].elements['afbeelding'].options[laatste_index] = new Option(option);
  8.  
  9. // optie voorzien van value
  10. top.document.forms['<form_naam_hier>'].elements['afbeelding'].options[laatste_index].value = option;
  11. }


Als je van directory wisselt zul je waarschijnlijk ook je options moeten resetten. Anders voegt ie alleen maar opties toe .

dit doe je met een clear-functie, die je aanroept VOORDAT je nieuwe opties toevoegt:

  1. function clear_options() {
  2. top.document.forms['<form_naam_hier>'].elements['afbeelding'].length = 0;
  3. }


EDIT: Hmm, dat laatste gaat niet helemaal goed - ik zoek dit nog uit.
EDIT 2: Ik zie niet zo gauw hoe je options weer kunt verwijderen - het beste kun je dus bij addOption een parameter "index" meegeven, die aangeeft op welke index een bepaalde naam/waarde komt te staan, en je kunt daarna de lengte van je options "cappen" met de "length" property van het selectbox-object.
Bij het schakelen van directory nummer je telkens vanaf (index) 0.
EDIT 3: Had de "JavaScript-expert" dit niet op kunnen lossen ? MOEHA
Offline DaOxx - 19/04/2005 09:57
Avatar van DaOxx PHP beginner Thanks FangorN, ik zal het vanavond meteen gaan proberen, en ja met dat resetten van de options moet ik dan ook nog maar even zoeken.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.248s