jeg ved godt at spørgsmålet er lukket, men jeg har lige et enkelt mere i forbindelse dermed. Det som jeg får skrevet ud at value i menuen, har bliver jeg nødt til at arbejde med et id. Det som jeg skulle have udskrevet er en kommentar tilhørende dette id, hvordan kan jeg gøre dette ?
I min <option value="<?=$data[medarbejderId]?>...., som du kan se har jeg ikke en tekst som i dit eksempel, med et id. Dette skal være der, da jeg bruger det til at koble en masse sammen i en database. Det betyder også, at det jeg får skrevet ud er dette id, og det skal jeg ikke. På dette id ligger der i databasen en kommentar, som er det jeg skal have skrevet ud.
Jeg skal så have lavet en query, der henter kommentaren omkring dette id. Problemet er så hvordan jeg får kommentaren over i passText(), i stedet for id'et.
har nu prøvet at skifte alle .value ud med .text, men det virker ikke. Jeg skal da både ændre value i funktionen samt der hvor jeg sender værdien med ?
Synes godt om
Slettet bruger
06. oktober 2002 - 09:33#20
Godt, så starter vi forfra. Funktionen passText er totalt ligegyldig, da det kan ordnes med én linje kode i <select>-tagget:
Nu kommer menID til at indeholde den valgte option's tekst. Jeg vil anbefale dig at lave menID til et hidden-felt, hvis du ikke allerede har gjort det:
jeg kan godt få textarea til at ændre indhold alt efter hvad der vælges i menuen, men mit problem er at jeg ikke ved hvordan jag skal få kommentaren til dette menuid til at komme i textarea.
For det eneste jeg har på menuen er indholdet, altså det som der står, samt id'et for punkterne i menuen. For at kunne få kommentaren til det bestemt id, er jeg nødt til at foretage et kald til DB. Mit problem er så hvordan jeg får sat onChange="this.form.oversættelses_kom.value = this.options[this.selectedIndex]. en php-variabel indeholdende retuneringen af kaldet ;">
Synes godt om
Slettet bruger
06. oktober 2002 - 13:22#22
Nårh, nu forstår jeg. Det er nemt nok:
<script> komm = new Array(); //Udskrives vha. PHP: komm[0] = new Array("id1", "Kommentar 1"); // Først ID, derefter kommentar komm[1] = new Array("id2", "Kommentar 2"); komm[2] = new Array("id3", "Kommentar 3"); komm[3] = new Array("id4", "Kommentar 4");
function hent_komm(id) { for (i = 0; i < komm.length; i++) if (komm[i][0] == id) return komm[i][1]; } </script>
Kanont nu kan jeg lidt af vejen, men det store problem er at id og kommentar begge skal være dynamiske, da brugeren har mulighed for både at slette og lave nye id'er, samt ændre kommentaren på disse id'er. Det vil sige, at når jeg definerer hvad der står i array, skal den hente oplysninger som står i DB
kan man i javascript ikke lave en forbindelse til db, og så hente oplysninger ud via denne ?
Jeg har prøvet dette, men da jeg aldrig har arbejdet i javascript før, ved jeg ikke om der skal stå noget specielt, ligesom f.eks. i PHP ved <? og ?>. Det jeg prøvede virkede i hvert fald ikke, får en obejct fejl i Explorer
komm = new Array(); kald = mysql_query("SELECT * FROM Samarbejdspartner"); svar = mysql_fetch_array($kald);
while (svar){ kom = svar[kommentar]; id = svar[samarbejdspartnerId]; for (i=0; i<svar;i++) komm[i] = new Array(id, kom); }
Jeg har nu fået det til at virke, bare ikke helt så dynamisk som jeg gerne ville have. I javascriptet skriver jeg
komm = new Array(); <?$kald = mysql_query("SELECT * FROM Samarbejdspartner");?> komm[0] = new Array(0,'');<? $j = 1; while ($svar = mysql_fetch_array($kald)){ //lave et array til hver samarbejdspartner indeholdende id og kommentar $kom = $svar[kommentar]; $id = $svar[samarbejdspartnerId];?> komm[<?=$j?>] = new Array(<?=$id?>,'<?=$kom?>'); <?$j = $j + 1; }?>
function getOverKom(id, felt){ feltkom=document.getElementById("overId"); feltkom.value=hent_komm(id); }
function getTrykKom(id, felt){ feltkom=document.getElementById("overTryk"); feltkom.value=hent_komm(id); }
function hent_komm(id) { for (i = 0; i < komm.length; i++) if (komm[i][0] == id){ return komm[i][1]; } }
i select skriver jeg så
onchange="getOverKom(this.value, 'overId');"
og textarea som skal opdateres/skrives i får f.eks. id'et overId
Der hvor det går galt, er i feltkom=document.getElementById("overTryk"); her bliver jeg nødt til direkte at skrive navnet på textarea, ideen var at det skulle komme dynamisk. Af denne grund er jeg også nødt til at lave 2 funktioner der i bund og grund gør det sammen, men til hvert sit textarea.
Synes godt om
Slettet bruger
07. oktober 2002 - 16:04#27
Jamen hvorfor gør du det i en funktion? Som jeg har vist dig, så er det tusind gange nemmere at gøre det i hver sin select!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.