Ga naar inhoud

Overhevelen van variabelen tussen twee multiple selectboxes


Aanbevolen berichten

Goeiemorgen iedereen, Ik zit eigenlijk nog steeds met het hetzelfde probleem van vorige week vrijdag. [url=http://forum.computertotaal.nl/phpBB/viewtopic.php?topic=57219&forum=13&2]Welk probleem?[/url] Er is echter wat veranderd; [img:cdfebf0ad4]http://www.klussenbank.nl/www/library/problem2.gif[/img:cdfebf0ad4] Ik krijg het maar niet voorelkaar om de trefwoorden (gesplitst) over te hevelen naar de tweede selectbox. Heeft iemand een idee? Vr.gr, Djurre _________________ Wij werken hier met fun, friendship, finance :grin: [ Dit bericht is bewerkt door: nssadmin op 2002-04-22 11:55 ]
Link naar reactie
Hoi Annie, Goed weekend gehad? :wink: - Ja, dat had gekund, maar het zag er naar uit dat ik er niet al te veel reacties op zou krijgen - en het is een ietwat andere opzet (wellicht makkelijker) geworden. - Het uitlezen van de array-variabel tussen beide selectboxes en het overhevelen hiervan lukt mij niet. Djurre
Link naar reactie
In je andere post heb ik een linkje gezet naar hoe je om kan gaan met een "select multiple". Dan is de rest toch kinderwerk? Bij een klik op de "->" knop post je de form naar zichzelf waarbij je de geselecteerde onderdelen in een loopje als options plaatst in de tweede select. Feitelijk doe je hetzelfde als het vullen van een select uit een database alleen werk je nu met een array. Dus ik zie het probleem niet. En van opmerkingen als "het lukt niet" word ik natuurlijk ook niet veel wijzer. Laat eens zien wat je al gedaan cq. geprobeerd hebt (bijv. een stukje pseudo code waarin de flow van je code duidelijk wordt of waarin je laat zien wat je wil bereiken).
Link naar reactie
Bedankt voor je hulp, je hebt gelijk, Ik heb het nu met JavaScript enigzins opgelost: [code:1:b5754fbf9c]<?php // Copyright (c) Interakt Online 2001 // http://www.interakt.ro/ require("./../../adodb/adodb.inc.php"); require("./../../Connections/klussenbank_con.php"); ?><?php $Rs_get_trefwoord=$klussenbank_con->Execute("SELECT trefwoord FROM trefwoorden") or DIE($klussenbank_con->ErrorMsg()); $Rs_get_trefwoord_numRows=0; $Rs_get_trefwoord__totalRows=$Rs_get_trefwoord->RecordCount(); ?><?php $Repeat1__numRows = -1; $Repeat1__index= 0; $Rs_get_trefwoord_numRows = $Rs_get_trefwoord_numRows + $Repeat1__numRows; ?> <html> <head> <title>Javascript test</title> </head> <script language="Javascript1.2"> <!-- /** * (2002) GoMotion Multimedia * Hevel bepaalde opties uit Select1 over naar Select2 * Met dank aan Mathieu Kooiman <mathieu@gginter.net> (MAP Internet Services) * en Annie * */ selectedValues = new Array(); function isSelected(value) { for (i=0;i<selectedValues.length;i++) { if (selectedValues[i] == value) { return true; } } return false; } function hevelOverCurrSelected() { select1 = document.forms[0].select1; s1SelOpt = select1.options[select1.selectedIndex]; select2 = document.forms[0].select2; if (!isSelected(s1SelOpt.value)) { select2.options[select2.options.length] = new Option(s1SelOpt.text, s1SelOpt.value,0,0); selectedValues[selectedValues.length] = s1SelOpt.value; } else { alert("Already selected: " + s1SelOpt.value); } } //--> </script> <body> <form method="post" action="bla.php"> <select name="select1" size="6" multiple> <?php while (($Repeat1__numRows-- != 0) && (!$Rs_get_trefwoord->EOF)) { ?> <option value="<?php echo $Rs_get_trefwoord->Fields("trefwoord")?>"> <?php echo $Rs_get_trefwoord->Fields("trefwoord")?> </option> <?php $Repeat1__index++; $Rs_get_trefwoord->MoveNext(); } ?> </select> <select name="select2" size="6" multiple> </select> <input type="button" onclick="hevelOverCurrSelected()" value="OK" /> </form> </body> </html> <?php $Rs_get_trefwoord->Close(); ?>[/code:1:b5754fbf9c] Nu nog het verwijderen van trefwoorden uit 'select2' en de waardes hiervan in één database-veld stoppen en dan is dit ook weer opgelost. Heeft iemand een idee? Djurre _________________ Wij werken hier met fun, friendship, finance :grin: [ Dit bericht is bewerkt door: nssadmin op 2002-04-22 12:53 ] [ Dit bericht is bewerkt door: nssadmin op 2002-04-22 12:56 ]
Link naar reactie
Om een option te verwijderen kan je gewoon de option op "null" zetten: selectObj.options[index] = null; Als je ze ook terug wil zetten dan kan je natuurlijk gewoon de functie die je nu al hebt hergebruiken (alleen dan de andere kant op). Om de waarden in de database te zetten zal je ze allemaal moeten selecteren (via een javascriptje) en daarna pas submitten (alleen geselecteerde options gaan immers mee in een submit) of de values uit de rechterbox in een hidden input zetten voor je submit en deze waarde uitlezen in je verwerkingsscript ipv de select. ps. het plaatsen van die enorme lap code heeft nu niet echt veel meerwaarde binnen deze thread vind je ook niet? ps2. wat doet mijn naam in de code? [ Dit bericht is bewerkt door: Annie op 2002-04-22 13:19 ]
Link naar reactie
[quote:e3386c2c41] Op 22-04-2002 13:13 schreef Annie: Om een option te verwijderen kan je gewoon de option op "null" zetten: selectObj.options[index] = null; [/quote:e3386c2c41] Ehm... hij doet het niet; dit werkt wel (half); [code:1:e3386c2c41] function DeleteOverCurrSelected() { select2.options[select2.selectedIndex] = null; } [/code:1:e3386c2c41] maar als ik dan weer hetzelfde trefwoord wil toevoegen krijg ik 'de alert'. hmmm.... Djurre
Link naar reactie
[quote:665e6ae61c] ps. het plaatsen van die enorme lap code heeft nu niet echt veel meerwaarde binnen deze thread vind je ook niet? ps2. wat doet mijn naam in de code? [/quote:665e6ae61c] - Ik had gedacht dat het voor het overzicht wat makkelijker was om het hele 'swikkie' te plaatsen. Zó lang is het toch ook niet? Heb je op je werk geen 21" monitor? Tsjonge... :smile: - Een klein eerbetoon voor de keren dat je mij de weg gewezen/geholpen hebt, zoals bijv. vorige week vrijdag en vandaag. Nooit verkeerd toch? _________________ Wij werken hier met fun, friendship, finance :grin: [ Dit bericht is bewerkt door: nssadmin op 2002-04-22 13:52 ]
Link naar reactie
goeiemorgen, Gisteren ben ik bezig geweest met het maken van een script dat het overhevelen van opties tussen twee selectboxes mogelijk maakt. Dit heb nu eindelijk voor elkaar. (hèhè... :grin: ) Zie evt. [url]http://www.klussenbank.nl/www/library/trefwoord_select.php[/url] Nu wil ik de opties met php in een array stoppen, maar zodra ik de naam van de tweede box verander van 'select2' naar 'select2[]' (ook in het JavaScript-script) werkt het JavaScript niet goed meer. Logisch, omdat Javascript-processor met de naam in de knoop komt te zitten vanwege de array. Ik krijg dus een error - Object wordt verwacht, Regel 95, teken 1. De (ingekorte) source code; [code:1:4493365290] <?php <html> <head> <title>GoMotion Mulitmedia</title> </head> <script language="Javascript1.2"> <!-- /** * (2002) GoMotion Multimedia * Hevel bepaalde opties uit Select1 over naar Select2 * Met dank aan Mathieu Kooiman <mathieu@gginter.net> * * */ selectedValues = new Array(); function isSelected(value) { for (i=0;i<selectedValues.length;i++) { if (selectedValues[i] == value) { return true; } } return false; } function hevelOverCurrSelected() { select1 = document.forms[0].select1; s1SelOpt = select1.options[select1.selectedIndex]; select2 = document.forms[0].select2; if (!isSelected(s1SelOpt.value)) { select2.options[select2.options.length] = new Option(s1SelOpt.text, s1SelOpt.value,0,0); selectedValues[selectedValues.length] = s1SelOpt.value; } else { alert("Trefwoord is al geselecteerd: " + s1SelOpt.value); } } function DeleteCurrSelected() { select2.options[select2.selectedIndex] = null; selectedValues.length = null; } //--> </script> <body> <form method="post" action="bla.php"> <select name="select1" size="6" style="font-family: Verdana; font-size: 8 pt; border: 1 solid #808080"> <?php while (($Repeat1__numRows-- != 0) && (!$Rs_get_trefwoord->EOF)) { ?> <option value="<?php echo $Rs_get_trefwoord->Fields("trefwoord")?>" style="font-family: Verdana; font-size: 8 pt; border: 1 solid #808080"> <?php echo $Rs_get_trefwoord->Fields("trefwoord")?> </option> <?php $Repeat1__index++; $Rs_get_trefwoord->MoveNext(); } ?> </select> //REGEL 95! <select name="select2" size="6" style="font-family: Verdana; font-size: 8 pt; border: 1 solid #808080"> </select><img src="../images/wiz_btns/ok.gif" width="44" height="28" onClick="hevelOverCurrSelected> <img src="../images/wiz_btns/terug.gif" width="61" height="28" onClick="DeleteCurrSelected</form> </body> </html> <?php $Rs_get_trefwoord->Close(); ?> [/code:1:4493365290] Heeft iemand een oplossing? Alvast bedankt :smile: Djurre _________________ Wij werken hier met fun, friendship, finance :grin: [ Dit bericht is bewerkt door: nssadmin op 2002-04-23 11:54 ] _________________ Wij werken hier met fun, friendship, finance :grin: [ Dit bericht is bewerkt door: nssadmin op 2002-04-23 20:58 ]
Link naar reactie
Okeej heb net even gekeken, ik denk dat ik het probleem snap: Zodra je een ding verwijderd is het mogelijk om alle items er nog een keer neer te gooien. Oplossing: hmm, ik ga de source bekijken [edit] Oplossing voor het door mij genoemde probleem: Vervang de bestaande "function DeleteCurrSelected" door het onderstaande. [code:1:24b77085bd] function DeleteCurrSelected() { select2.options[select2.selectedIndex] = null; selectedValues.length = selectedValues.length - 1; } [/code:1:24b77085bd] [/edit] Is meteen een compensatie van het loze topic wat ik net opende, en daarna pas begon met zoeken. Als er nog meer problemen met het script zijn zeg het maar heb het script nu toch doorgrond. [ Dit bericht is bewerkt door: mvwinger op 2002-04-23 18:18 ]
Link naar reactie
Hoi mvwinger, [quote:cd23f67ac1] Bill Gates: Het forum werkte gewoon niet mailde hij mij net, dus er is zeker geen sprake van topics omhoogschoppen... [/quote:cd23f67ac1] Inderdaad, heel frappant. Ik krijg de laatste tijd ook veel time-outmeldingen en DNS-errors :sad: Ik had het niet door dat de berichten maar hálf geplaatst werden. ---------------- Bedankt voor je reactie, Het script doet het in zoverre dat het overhevelen en het verwijderen van de opties in de boxes functioneert. Nu rest nog de taak om de [b:cd23f67ac1]geselecteerde opties in de tweede box, 'select2' bijelkaar op te tellen als een string (met een spatie tussen elk woord)[/b:cd23f67ac1] en in een veld in de database te zetten. Ik had gehoopt dit met een array (input name="select2[]") in PHP te kunnen bereiken, maar zoals gezegd kreeg ik dan problemen met het JavaScript. Een andere oplossing is misschien het tegelijkertijd vullen van een hidden field (met bijvoorbeeld de naam 'trefwoord') tijdens het selecteren van de opties, met de betreffende waarden. Een van de lastigheden hiervan is het verwijderen van de juiste opties in 'trefwoord' als deze verwijderd worden uit 'select2', de tweede select-box. Ik ben hier al de hele dag mee bezig geweest, maar ik krijg het niet voormekaar, ondanks de goede hulp van gebruikers van het Computer!Totaal-forum. Misschien dat jij (of nog iemand anders natuurlijk... :wink: ) er iets op weet? Alvast bedankt :grin: Djurre (Hé, nu plaatst ze wéér meerdere keren! :sad: ) (Ik was de [url=http://www.klussenbank.nl/www/library/trefwoord_select.php]URL[/url] vergeten.) _________________ Wij werken hier met fun, friendship, finance :grin: [ Dit bericht is bewerkt door: nssadmin op 2002-04-23 20:26 ]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...