Auswahlliste

sunygirl

Mitglied
Hallo! Vielleicht eine etwas blöde Frage aber ich bin PHP-Anfänger!
Ich habe in mein Script eine Auswahlliste die eine Reihe von Namen zeigt und wenn man einen Namen auswählt erscheint in einer Tabelle mehrere Sachen zu dem Namen, das funktioniert auch nur möchte ich das der mir den Namen in der Auswahliste auch weiterhin anzeigt wenn ich einen Namen ausgewählt habe, im Moment zeigt der immer den ersten Namen aus der List an...
Ich hoffe ihc konnte das einiger Maßen erklären und mir kann jemand helfen!

Gruß Suny
 
Also folgendermassen, du übergibst ja den Namen oder ne ID dazu nachdem du es ausgewählt hast um dazu Daten auszulesen.

Genau in diesem Schritt beui dem dir der gewählte Namen bekannt ist oder dessen ID, fragst du dies beim Erstellen der Selectbox ab und gibtst ggf ein selected mti aus:

PHP:
echo '<select size="1" name="nameID">';
while( $row = mysql_fetch_assoc($deinesqlressource) )
{
   //Wenn $_POST['nameID'] mit aktueller ID übereinstimmt $selected auf ='selected' setzen
   $selected = ($_POST['nameID']==$row['ID'])?('selected'):('');
   echo "<option value=\"".$row['ID']."\" $selected>".$row['name']."</option>";
}
 
Dann zeig mir mal den generierten Quellcode...

stimmt denn die Struktur des von mir beispielhaft verwendeten Arrays mit dem von dir verwendeten an?
Oder zeig doch mal den Quellcode...
 
<?php
echo "<td valign=\"top\"><SELECT NAME=\"user\">";
$link = mysql_pconnect("localhost","root","");
mysql_select_db("ums",$link);
$query = "SELECT * FROM user ORDER BY user.USER_NACHNAME";
$result = mysql_query($query,$link);
While ($line = mysql_fetch_array($result))
{
echo "<option value =\"$line[0]\">$line[1], $line[2]</option><br>";
}
echo "</SELECT></td>";
if (!empty($HTTP_GET_VARS['user']) AND $HTTP_GET_VARS['user'] != "0"){
echo "<td valign=\"top\">";
$query = "SELECT user.USER_ID, gruppe.GRP_NAME FROM (user INNER JOIN user_grp ON user.USER_ID = user_grp.USER_ID) INNER JOIN gruppe ON user_grp.GRP_ID = gruppe.GRP_ID WHERE (((user.USER_ID)= \"{$HTTP_GET_VARS['user']}\"))";
$result = mysql_query($query,$link);
echo "<br><br>" .mysql_error() ."<br><br>";
While ($line = mysql_fetch_array($result))
{
echo "<INPUT TYPE=\"checkbox\" checked NAME=\"grp_name$line[1]\" value =\"$line[1]\"> $line[1]<br>";
}
echo "</td><td valign=\"top\">";
 
Paste den Code in Zukunft bitte in [ PHP ] und [ / PHP ] Tags (ohne Leerzeichen) für das Syntaxhighlighting.

Gut den Code von mir hast du auch noch nicht eingabut.

Hab noch ein paar andere Kleinigkeiten wie or die() oder While zu while geändert...
Hier mal der Code wie es klappen müsste:

PHP:
<?php

$link = @mysql_pconnect("localhost","root","") or die('Fehler bei der Datenbankverbindung: '.mysql_error());
mysql_select_db("ums",$link);
$query = "SELECT * FROM user ORDER BY user.USER_NACHNAME";
$result = @mysql_query($query,$link) or die('Fehler im SQL-Statement: '.mysql_error());

//Userselectbox erstellen
echo "<td valign=\"top\"><select name=\"user\">";
while ($line = mysql_fetch_array($result))
{
  $sel = ($_GET['user']==$line[0])?('selected'):(''); 
 echo "<option value=\"$line[0]\" $sel>$line[1], $line[2]</option><br>";
}
echo "</select></td>";

if (!empty($_GET['user']) && $_GET['user'] != "0"){
echo "<td valign=\"top\">";
$query = "SELECT user.USER_ID, gruppe.GRP_NAME FROM (user INNER JOIN user_grp ON user.USER_ID = user_grp.USER_ID) INNER JOIN gruppe ON user_grp.GRP_ID = gruppe.GRP_ID WHERE (((user.USER_ID)= \"{$HTTP_GET_VARS['user']}\"))";
$result = mysql_query($query,$link) or die('Fehler im SQL-Statement: '.mysql_error());
echo "<br><br>" .mysql_error() ."<br><br>";
while ($line = mysql_fetch_array($result))
{
echo "<INPUT TYPE=\"checkbox\" checked NAME=\"grp_name$line[1]\" value =\"$line[1]\"> $line[1]<br>";
}
echo "</td><td valign=\"top\">";
 
Zuletzt bearbeitet:
Also so sollte es aussehen, hab die Smilies mal deaktiviert im obigen Beitrag (hatte ich schlauerweise vergessen)

PHP:
$sel = ($_GET['user']==$line[0])?('selected'):('');
 
gernö...

hoffe du hast auch die anderen Änderungen beachtet da Sie für die Zukunft recht sinnvoll sind.... zumal erspart es u.u. Threads, wie warum geht Statement X nicht... ;)
 
Zurück