Problem mit Dropdown-Auswahl

  • Erst mal ein nettes "Hallo" zusammen,

    ich habe mir ein Dropdown-Feld gebastelt, das Daten einer DB in einer Tabelle ausgibt.
    Der zugehörige Code sieht so aus:

    Der Code funktioniert soweit auch. Das Problem ist lediglich, das wenn ich im Dropdown-Feld die 2. Option auswähle ("Owned") werden die richtigen Datensätze in der Tabelle zwar angezeigt aber das Dropdownfeld springt wieder auf die 1. Option ("Found") zuürck.

    Wie kann ich erreichen das die gewählte Option auch angezeigt bleibt ??
    Danke schon mal im Voraus.

    Gruß Dominik

  • Hallo auch.

    Du musst das aktuelle Element mit selected="selected" auszeichnen.

    Der Code sollte funktionieren:

    PHP
    <select name=kategorie size=1> 
    <option value="Found"<?php echo ( ($_POST['kategorie']=='Found') ? 'selected="selected"' : '' ) ?>>Found</option>
    <option value="Owned"<?php echo ( ($_POST['kategorie']=='Owned') ? 'selected="selected"' : '' ) ?>>Owned</option>
    </select>

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Hallo Dodo,
    das ging ja mal schnell !!! Und der Code funktioniert einwandfrei. Genau so hatte ich mir das vorgestellt.

    Vielen Dank !!!

  • Hinweis: dein restlicher Quellcode ist nicht gerade sauber. Er beinhaltet einige HTML-Fehler. Schau dir das nochmal genauer an.

    Hm, bin leider nicht so der html- und php-Kenner... Den Code hab ich mit viel "Try-and-error" gebastelt..
    Das einzige was mir bisher aufgefallen ist, ist das fehlende </p>-Tag. Kannst du mir weiter auf die Sprünge helfen ??

    Der Code funktioniert so ja einwandfrei. Jetzt hab ich noch eine Frage und zwar möchte ich die Ergebnisse verlinken.
    Genauer gesagt sollen die Ergebnisse aus der Spalte "gccode" verlinkt werden.

    Ich habe es mit

    PHP
    <a href="http://www.xxx.com/details.aspx?wp=$gccode\">$gccode</a>

    aber will irgendwie nicht funktionieren. Hat vielleicht jemand einen "Denkanstoß" ???

    Gruß Dominik

  • Hm, bin leider nicht so der html- und php-Kenner... Den Code hab ich mit viel "Try-and-error" gebastelt..
    Das einzige was mir bisher aufgefallen ist, ist das fehlende </p>-Tag. Kannst du mir weiter auf die Sprünge helfen ??


    Ganz einfach: HTML hat ein gewisses Format. Gewisse Regeln. Das wird bei deinem Code nicht eingehalten.

    Der Code funktioniert so ja einwandfrei. Jetzt hab ich noch eine Frage und zwar möchte ich die Ergebnisse verlinken.
    Genauer gesagt sollen die Ergebnisse aus der Spalte "gccode" verlinkt werden.

    Ich habe es mit

    PHP
    <a href="http://www.xxx.com/details.aspx?wp=$gccode\">$gccode</a>

    aber will irgendwie nicht funktionieren. Hat vielleicht jemand einen "Denkanstoß" ???



    Das kann nciht der ganze Code sein.
    Poste bitte erneut den ganzen PHP-Code, wie du es versucht hast und nicht nur den Ausschnitt einer Zeile.

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • So hab ich das jetzt mal versucht aber funzt irgendwie absolut gar nicht :(
    Zum funktionierenden Code habe ich lediglich eingefügt:

    PHP
    $gccode=mysql_result($resultid, "gccode");


    und

    PHP
    echo "<a href='http://www.geocaching.com/seek/cache_details.aspx?wp='+'$gccode'>'$gccodeV</a>";

    Irgendwie hab ich nicht die geringste Ahnung...
    Kann mir da jemand auf die Sprünge helfen ?

  • Versuchs mal damit:

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • So, hab dein Code mal getestet und bekomme folgende Fehlermeldung:

    Code
    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING on line 26


    Line 26 sieht folgendermaßen aus:

    Code
    echo "  <td>$row['nummer']</td>";


    Könnte das evtl. an einem fehlenden Anführungszeichen oder so liegen ?

  • Kaum zu glauben, aber wenn man sich wenigstens mal mit den Grundlagen von PHP beschäftigen würde, dann müsste man nicht wegen einem dämlichen Parse-Error posten. :(

    PHP
    while ($row = mysql_fetch_row($resultid)) 
    { 
       echo "<tr> 
              <td>" . $row['nummer'] . "</td> 
              <td>" . $row['bezeichnung'] . "</td> 
              <td><a href='http://www.geocaching.com/seek/cache_details.aspx?wp=" . $row['gccode'] . "'>" . $row['gccode'] . "</a></td> 
              <td>" . $row['groesse'] . "</td> 
             </tr>"; 
    }
  • So, hab die ganze Zeit versucht Fehler zu beheben. Aber wie schon gesagt ich hab von PHP keine Ahnung.
    Nachdem ich den Code von bandit600 benutzt habe, bekomme ich folgende Meldung:

    Code
    Notice: Undefined index: nummer in /users/dominik/www/caches2.php on line 26
    Notice: Undefined index: bezeichnung in /users/dominik/www/caches2.php on line 27
    Notice: Undefined index: gccode in /users/dominik/www/caches2.php on line 28
    Notice: Undefined index: gccode in /users/dominik/www/caches2.php on line 28
    Notice: Undefined index: groesse in /users/dominik/www/caches2.php on line 29


    und das für alle ergebnisse aus der Tabelle.

    Die Zeilen sehen folgendermaßen aus:

    PHP
    <td>" . $row['nummer'] . "</td> 
              <td>" . $row['bezeichnung'] . "</td> 
              <td><a href='http://www.geocaching.com/seek/cache_details.aspx?wp=" . $row['gccode'] . "'>" . $row['gccode'] . "</a></td> 
              <td>" . $row['groesse'] . "</td>

    Ich hab mich mal ein "wenig" in PHP eingelesen (vom Großteil leider nur Bahnhof verstanden) und bin bisher der Meinung, das die Elemente nicht existieren und vor der Verwendung mit isset überprüft werden sollten.

    Ich hab ewig rumprobiert und hab´s nicht hinbekommen. Kann mir jemand sagen wie ich das jetzt gebacken bekomme ??

    Danke. Dominik

  • Deine Meinung dazu ist richtig. Entweder Du setzt vor die Ausgabe eine Bedingung, wie etwa

    Code
    if(isset($row['nummer']))

    oder Du schaltest dein Error-Reporting soweit herab, dass es solche "Notizen" nicht bringt.

  • Also die Lösung von Dodo mit mysql_fetch_assoc funktioniert wunderprächtig !
    Jetzt passt es so wie ich es haben wollte.
    Danke euch allen für die Unterstützung !!!

    Gruß Dominik