Nach DropDown Auswahl Daten aus der SQL-DB auslesen

samson024

Grünschnabel
Hallo Community!

ich stehe momentan vor der Frage, wie ich Daten geladen bekomme, nachdem ich einen User aus einem DropDown ausgewählt habe...

Vielleicht kann mir jemand von Euch helfen.

Hier mein derzeitiges Script...

PHP:
<?php 
include ("checkuser.php"); 
?> 
<?php
require("../sql/sql.inc.php");

$ra_sql = "SELECT * FROM benutzerdaten";
$ergebnis = mysql_query($ra_sql);
$optionals = "";
while($row = mysql_fetch_array($ergebnis))
{
    $optionals .= "<option value=\"".$row["Nickname"]."\">".$row["Nickname"]."</option>";
}
    
?>
<style type="text/css">
<!--
.Stil1 {
	color: #FFFF00;
	font-weight: bold;
	font-size: 16px;
}
.Stil3 {color: #FF0000}
.text {color:#FF0000; background-color:#770000; }
.btn {color:#FF0000; background-color:#000000;}
.tablebg {background-color:#770000}
-->
</style>
<div align="center">
  <table width="98%" class="tablebg" border="1">
    <tr>
      <td><form name="form1" method="post" action="usr_u.php">
  <table width="100%" border="0" align="center">
    
    <tr>
      <td colspan="2" align="center"><hr /></td>
    </tr>
    <tr>
      <td colspan="2" align="center" class="Stil1">User Management</td>
      </tr>
    <tr>
      <td colspan="2"><hr /></td>
      </tr>
<tr>
      <td><span class="Stil3">?Userauswahl</span></td>
      <td>
      <select name="drop" onchange="">
      <?PHP print $optionals; ?>
      </select></td>
    </tr> 
    <tr>
      <td><span class="Stil3">? User ID</span></td>
      <td><input name="Id" class="text" type="text" id="Id" value="<? echo $Id; ?>" /></td>
    </tr>
    <tr>
      <td class="Stil3">? Nick</td>
      <td><input name="Nickname" class="text" type="text" id="Nickname" value="<? echo $Nickname; ?>" /></td>
    </tr>
    <tr>
      <td class="Stil3">? Kennwort</td>
      <td><input name="Kennwort" class="text" type="text" id="Kennwort" value="" /></td>
    </tr>
    <tr>
      <td class="Stil3">? Nachname </td>
      <td><input name="Nachname" class="text" type="text" id="Nachname" value="<? echo $Nachname; ?>" /></td>
    </tr>
    <tr>
      <td class="Stil3">? Vorname </td>
      <td><input name="Vorname" class="text" type="text" id="Vorname" value="<? echo $Vorname; ?>" /></td>
    </tr>
    </table>
  <p align="center"><input name="submit" class="btn" type="submit" value="&Auml;nderungen Speichern"></p>
  </form></td>
    </tr>
  </table>  
</div>

Thanks a Lot!
 
Moin,

üblicherweise packt man die Box dazu in ein Formular und sendet dieses....das Formularziel kann dann die Daten aus der DB auslesen.

Ohne ein Senden des Formulares geht dies mit Javascript, genauer gesagt mit AJAX.
 
Hallo Sven, Danke für deine Antwort...
Leider habe ich von Java, Javascript, Actionscript und Ajax keinen blassen Schimmer...
Könntest du mir die Funktion dafür schreiben?
 
könntest du mir die funktion in den php/html code eintragen?
ich hab davon leider noch keine ahnung...
das wär superlieb
 
Wie im Screenshot...
Oben ist der Drop mit den Nicknamen, wo man einen auswählt und unten sollen dann die felder mit den benutzerdaten eingelesen werden aus der DB...

screen.gif

Hier nochmal der Aktuelle Code...

PHP:
<?php
require("../sql/sql.inc.php");



$check_id = $_GET["drop"];
if($check_id <>  "") {
$ra_sql = "SELECT * FROM benutzerdaten where Id ='$check_id'";

$ergebnis = mysql_query($ra_sql);
    while($row = mysql_fetch_array($ergebnis)) {
  
    $Id = $row->Id;
    $Nickname = $row->Nickname;
    $Nachname = $row->Nachname;
    $Vorname  = $row->Vorname;
    }
}
?>
<style type="text/css">
<!--
.Stil1 {
	color: #FFFF00;
	font-weight: bold;
	font-size: 16px;
}
.Stil3 {color: #FF0000}
.text {color:#FF0000; background-color:#770000; }
.btn {color:#FF0000; background-color:#000000;}
.tablebg {background-color:#770000}
-->
</style>
<div align="center">
  <table width="98%" class="tablebg" border="1">
    <tr>
      <td><form name="form1" method="post">
  <table width="100%" border="0" align="center">
    
    <tr>
      <td colspan="2" align="center"><hr /></td>
    </tr>
    <tr>
      <td colspan="2" align="center" class="Stil1">User Management</td>
      </tr>
    <tr>
      <td colspan="2"><hr /></td>
      </tr>
      
      
<tr>
      <td><span class="Stil3">? Drop Test</span></td>
      <td><form>
      <select name="drop" OnChange="javascript:document.getElementById('bu') .click();">
      <?php
 	     $rb_sql = "SELECT * FROM benutzerdaten order by Nickname";
		 $ergebnise = mysql_query($rb_sql);
		 while($rows = mysql_fetch_array($ergebnise))
	{
    print "<option value=\"".$rows["Id"]."\">".$rows["Nickname"]."</option>";
	}
?></select>
<input type="submit" Style="Display:NONE;" id="bu" value="Send">
</td></form>
</tr>
<tr>
<form name="form1" method="post" action="usr_u.php">
</tr> 
    
    
    <tr>
      <td><span class="Stil3">? User ID</span></td>
      <td><input name="Id" class="text" type="text" id="Id" value="<? echo $Id; ?>" /></td>
    </tr>
    <tr>
      <td class="Stil3">? Nick</td>
      <td><input name="Nickname" class="text" type="text" id="Nickname" value="<? echo $Nickname; ?>" /></td>
    </tr>
    <tr>
      <td class="Stil3">? Kennwort</td>
      <td><input name="Kennwort" class="text" type="text" id="Kennwort" value="" /></td>
    </tr>
    <tr>
      <td class="Stil3">? Nachname </td>
      <td><input name="Nachname" class="text" type="text" id="Nachname" value="<? echo $Nachname; ?>" /></td>
    </tr>
    <tr>
      <td class="Stil3">? Vorname </td>
      <td><input name="Vorname" class="text" type="text" id="Vorname" value="<? echo $Vorname; ?>" /></td>
    </tr>
    </table>
  <p align="center"><input name="submit" class="btn" type="submit" value="&Auml;nderungen Speichern"></p>
  </form></td>
    </tr>
  </table>  
</div>
 
Das <select>:
Code:
 <select name="drop" onchange="
      $.get('ajax.php', 
            { what: 'userdetails', id: this.value },
            function(data)
              {
                $.each(data,
                       function(i,item)
                       {
                        $('#'+i).val(item);
                       }
              )
              },
            'json'
);">

Aufgerufen wird die ajax.php, welche per GET folgende Parameter erhält:
what->userdetails(daran kannst du erkennen, was geholt werden soll, falls du später noch mehr mit AJAX arbeiten willst)
id->die Userid...anhand der du die Daten aus der DB holen kannst.

Als Rückgabe der ajax.php wird eine JSON-kodierter String erwartet, mit folgendem Aufbau:
Code:
{"Id":"wert","Nickname":"wert","Kennwort":"wert","Nachname":"wert","Vorname":"wert"}

Die fett markierten Passagen müssen identisch mit der ID des jeweiligen <input>'s sein, bei wert kommen halt die Werte aus der DB hin.
 
das heisst ich brauch nur eine Datei anlegen, mit dem namen Ajax.php
und dieser den Inhalt verpassen?
Code:
{"Id":"wert","Nickname":"wert","Kennwort":"wert","Nachname":"wert","Vorname":"wert"}

und dann in meiner normalen PHP File
den Code ändern / korrigieren?

Code:
 <select name="drop" onchange="
      $.get('ajax.php', 
            { what: 'userdetails', id: this.value },
            function(data)
              {
                $.each(data,
                       function(i,item)
                       {
                        $('#'+i).val(item);
                       }
              )
              },
            'json'
);">

Das ist alles?
 
Zurück