Gå til innhold

[Løst]Fylle forms fra dropdown


Anbefalte innlegg

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 av Actibus
Lenke til kommentar
Videoannonse
Annonse

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 av Edorph
Lenke til kommentar

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 av Actibus
Lenke til kommentar

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 av Edorph
Lenke til kommentar

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...