Actibus Skrevet 13. november 2009 Del Skrevet 13. november 2009 (endret) Prøver å lage en side hvor man har en dropdown boks som henter informasjon fra mySql, den delen virker, men så vil jeg at utifra hva man velger så skal det fylles ut endel tekstbokser med mer info fra mySql. Eks. Man velger Jul E., Nissen i dropdown, da vil jeg at adressen hans skal fylles ut i Adresse boksen, telefon i tlf boksen etc. Har prøvd med følgende: <? include("dbinfo.inc.php"); mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Unable to select database"); $sql="SELECT id, last FROM contacts"; $result=mysql_query($sql); $options=""; while ($row=mysql_fetch_array($result)) { $id=$row["id"]; $last=$row["last"]; $options.="<OPTION VALUE=\"$id\">".$last; } ?> <select name="pickup" onChange="document.form1.namebox.value=this.options[this.SelectedIndex].value;"> <OPTION VALUE=0>Choose <?=$options?> </SELECT> <form name="form1" method="post" action=""> <label> Navn: <input type="text" name="namebox" id="name"> </label> <br> Telefon: <label> <input type="text" name="textfield" id="textfield"> </label> </form> Da får jeg fungerende dropdown, men skjønner ikke helt hvordan jeg skal få fyllt ut text boksene. Håper noen kan hjelpe meg videre:) Endret 13. november 2009 av Actibus Lenke til kommentar
Edorph Skrevet 13. november 2009 Del Skrevet 13. november 2009 (endret) Inni while-løkka, bytt value til $last istedet for $id, slik: while ($row=mysql_fetch_array($result)) { $id=$row["id"]; $last=$row["last"]; $options .= "<option value=\"$last\">".$last."</option>"; } (Husk å lukke alle tagger, dvs bruk </option>) Eneste feilen med javascriptet er stor S i selectedIndex, tror jeg. <select name="pickup" onChange="document.form1.namebox.value=this.options[this.selectedIndex].value;"> <option value="">Choose</option> <?=$options?> </select> Endret 13. november 2009 av Edorph Lenke til kommentar
Actibus Skrevet 13. november 2009 Forfatter Del Skrevet 13. november 2009 (endret) Da virket den ja, takk for det. Men nå vil jeg ha det slik at hvis jeg velger et navn i listen, så vil jeg at all informasjon i databasen på det navnet skal vises på siden. Mulig jeg skal klare det selv, men tar gjerne imot tips:) Ser for meg et slags søk $query="SELECT * FROM contacts WHERE last='$???'"; $result=mysql_query($query) Hvordan får jeg WHERE last='$???' til å bruke det som er valgt i drop down boksen? Endret 13. november 2009 av Actibus Lenke til kommentar
Edorph Skrevet 13. november 2009 Del Skrevet 13. november 2009 (endret) Ok, jeg vet ikke hvor bevandret du er, men det er i praksis minst et par forskjellige måter å gjøre det på. En av de enkleste er som følger. Endre onChange-attributten til å laste siden på nytt med en parameter som sier hvilken person som er valgt i dropdown-listen: <select name="pickup" onChange="window.location='ditt_script.php?id=' + this.value;"> Da kan du bruke id-parameteren til å hente ut riktig person fra databasen, eller, hvis du ikke fikk en id-parameter, beholde feltene tomme. $last = ''; $phone = ''; if(is_numeric($_GET['id'])){ $result = mysql_query('SELECT * FROM contacts WHERE id=' . $_GET['id']); $last = @mysql_result($result, 0, 'last'); $phone = @mysql_result($result, 0, 'phone'); } .. og vise riktig info i feltene <label>Navn: <input type="text" name="namebox" id="name" value="<?=$name ?>" /> </label><br/> <label>Telefon: <input type="text" name="textfield" id="textfield" value="<?=$phone ?>" /> </label> Endret 13. november 2009 av Edorph Lenke til kommentar
Actibus Skrevet 13. november 2009 Forfatter Del Skrevet 13. november 2009 Hmm, er ikke veldig bevandret i det her. Takk for tilbakemeldingen, får se om jeg klarer å sette det sammen:) Må php scriptet i en egen fil, også <label>Navn: <input type="text" name="namebox" id="name" value="<?=$name ?>" /> </label><br/> <label>Telefon: <input type="text" name="textfield" id="textfield" value="<?=$phone ?>" /> </label og <select name="pickup" onChange="window.location='ditt_script.php?id=' + this.value;"> i 1 fil sammen? Lenke til kommentar
Edorph Skrevet 13. november 2009 Del Skrevet 13. november 2009 Nei, hvis du vil, så kan du fortsette å ha alt sammen i en fil. Det jeg foreslo er bare små endringer på det du hadde i førsteposten, men ser at jeg hadde et par skrivefeil. Til sammen blir det altså noe sånt som dette: <? include("dbinfo.inc.php"); mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Unable to select database"); /********* Hent ut 'id' og 'last' for alle kontakter ********/ $sql="SELECT id, last FROM contacts"; $result=mysql_query($sql); $options=""; while ($row=mysql_fetch_array($result)) { $id=$row["id"]; $last=$row["last"]; $options.="<option value=\"$id\">".$last."</option>"; } /*** Hent ut all info om valgt kontakt, hvis vi fikk en parameter ***/ $last = ''; $phone = ''; if(is_numeric($_GET['id'])){ $result = mysql_query('SELECT * FROM contacts WHERE id=' . $_GET['id']); $last = @mysql_result($result, 0, 'last'); $phone = @mysql_result($result, 0, 'phone'); } ?> <select name="pickup" onChange="if(this.value != -1) window.location='ditt_script.php?id=' + this.value;"> <option value="-1">Choose</option> <?=$options?> </select> <form name="form1" method="post" action=""> <label> Navn: <input type="text" name="namebox" id="name" value="<?=$last ?>" /> </label> <br> Telefon: <label> <input type="text" name="textfield" id="textfield" value="<?=$phone ?>" /> </label> </form> Husk å bytte ut ditt_script.php med navnet på ditt eget script. Lenke til kommentar
Actibus Skrevet 13. november 2009 Forfatter Del Skrevet 13. november 2009 (endret) snip Endret 15. november 2009 av Actibus Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå