Inhalt von Textfeldern ändern mittels Liste

solomat

Erfahrenes Mitglied
Hallo, ich hab hier schon gesucht und mich auch auf selfHTML umgeschaut...

Nun zu meinem Problem. Ich habe ein Formular was ich zum eintragen von Partyterminen nutze. Dieses möchte ich in soweit erweitern das ich einige Clubs schon in einer Datenbank gespeichert habe um das eintragen der Adresse zu ersparen. Das ganze funktioniert bisher leider nur soweit, dass die Clubdaten in der Liste zur Auswahl stehen. Nun sollen aber auch die dazugehörigen Daten aus der Datenbank geholt werden und in die entsprechenden Textfelder geschrieben werden. Aber wie? :(

Ich glaub soviel zu wissen, dass ich die Funktion onchange brauche.

Hier mal der wichtigste Teil aus dem Code.

PHP:
<link href="../layout.css" rel="stylesheet" type="text/css">
<form method=post action=events.php?section=operate name=party_eintragen>
<table width=530 border=0 align=center cellpadding=3 cellspacing=0>
<tr>
<td>Location</td>
<td><input type=text name=location>  
<select>
<option>Club ausw&auml;hlen
<option>- - - - - - - - - - - - - -
<?
mysql_connect("xxx","xxx","xxx")or die ("Keine Verbindung moeglich");
mysql_select_db("xxx") or die ("Die Datenbank existiert nicht");
$sql = "SELECT * FROM clubs ORDER BY location DESC"; 
$ergebnis = mysql_query($sql) or die (mysql_error()); 
while($row = mysql_fetch_object($ergebnis)) 
{ 
//Ausgabe der Beiträge 
echo "<option value=$row->location>$row->location";
}
?>
</select>
</td></tr>
<tr><td> Stra&szlig;e &amp; Hausnummer <br>
</td>
<td><input type=text name=adresse> 
</td>
</tr>
<tr>
<td>Plz/Ort</td>
<td><input type=text name=plz size=5 maxlength=5> 
  / <input type=text name=ort></td></tr>
<tr>
  <td>&nbsp;</td>
<td><input type=submit name=submit value="Eintragen"></td>
</tr>
</table>
</form>
 
Rein mit Javascript kann man nicht auf Serverdaten zugreifen. Es gibt aber trotzdem einige Tricks. Suche einfach mal im Javascript-Forum nach "Reload ohne zu zucken" oder "MySQL", dann solltest du fündig werden.

Das nächste Mal bitte erst die Forensuche benutzen und dann fragen. Danke!
 
Hab es hinbekommen und wollte hier nochmal meine Lösung posten:

PHP:
<link href="../layout.css" rel="stylesheet" type="text/css"> 
<form method=post action=events.php?section=operate name=party_eintragen> 
<table width=530 border=0 align=center cellpadding=3 cellspacing=0> 
<tr> 
<td width="150" class="footer">Club/Location</td>
<td><input name="location" type="text" class="grau"> 
/ 
<select name="clubs" class="grau" onchange="InsertClub(this.options[this.options.selectedIndex].value")>
<option selected>Club ausw&auml;hlen
<option>- - - - - - - - - - - - - -";
<?
mysql_connect("$mysql_hostname","$mysql_username","$mysql_password")or die ("Keine Verbindung moeglich");
mysql_select_db("$mysql_database") or die ("Die Datenbank existiert nicht");
$sql = "SELECT * FROM $mysql_tablename_clubs ORDER BY location ASC"; 
$ergebnis = mysql_query($sql) or die (mysql_error()); 
while($row = mysql_fetch_object($ergebnis)) 
{
//Ausgabe der Clubs 
echo "<option value=$row->location_name>$row->location";
}
?>
</select>
</td></tr>
</tr>
<tr><td width="150" class="footer">Stra&szlig;e &amp; Hausnummer <br>
</td>
<td><input name=adresse type=text class=grau> 
</td>
</tr>
<tr>
<td width="150" class="footer">Plz/Ort</td>
<td><input name="plz" type="text" class="grau" size="7" maxlength="5"> / 
<input name=ort type=text class=grau></td></tr> 
<tr> 
  <td>&nbsp;</td> 
<td><input name=submit type=submit class="grau" value="Eintragen"></td> 
</tr> 
</table> 
</form>
<script language="javascript">
pe=document.party_eintragen;

function InsertClub(club){

   if (club==''){
      clubname='';
      clubort='';
      clubplz='';
      clubadresse='';}
	  <?
	  	$ergebnis = mysql_query($sql) or die (mysql_error()); 
	 		 while($row = mysql_fetch_object($ergebnis)) 
	 			 {
	  			//Ausgabe der Clubanschriften 
	 			 echo "else if (club=='$row->location_name'){
     			 clubname='$row->location';
     			 clubplz='$row->plz';
     			 clubort='$row->ort';
				 clubadresse='$row->adresse';}";
	  }
	  ?>

	  else {
      clubname='';
      clubort='';
      clubplz='';
      clubadresse='';
   };

   InsertClubDetails(clubname,clubort,clubplz,clubadresse);
}

function InsertClubDetails(clubname,clubort,clubplz,clubadresse){
   pe.location.value=clubname;
   pe.ort.value=clubort;
   pe.plz.value=clubplz;
   pe.adresse.value=clubadresse;
}
</script>
 

Neue Beiträge

Zurück