1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

PHP - Suchfunktion erweitern

Dieses Thema im Forum "PHP & Co." wurde erstellt von Tyrra, 13.07.09.

  1. Tyrra

    Tyrra Holländischer Prinz

    Dabei seit:
    17.12.07
    Beiträge:
    1.869
    Hallo, ich habe von meinem Vorgänger ein Projekt übernommen und soll die Suchfunktion erweitern.

    das Problem bei der Erweiterung ist das 4 DB-Felder abgefragt werden sollen in den jeweils nur ein Name steht (Zuständigkeit)

    Aus Platzmangel habe ich mich für Checkboxen entschieden:
    Der erste Bereich (Betreff funzt prima). zustaendig_1, zustaendig_2 geht aber irgendwie nicht!

    Im Anhang habe ich mal die Seite als TXT rangehängt. Falls jemand sich dem gewachsen fühlt wäre ich sehr dankbar!

    PHP-Anfang ---------------------------
    echo "<td width='400' bgcolor='#E4EBFE'><font color='#010000' size='2' face='Arial, Helvetica, sans-serif'><input type='text' size='60' name='betreff' value='";
    if(!empty($_POST["betreff"])) echo $_POST["betreff"];
    echo "'>";
    echo "</font></td>";

    echo "<td width='150' bgcolor='#E4EBFE'><font color='#010000' size='2' face='Arial, Helvetica, sans-serif'>";

    echo "<input type='checkbox' name='zustaendig_1' value='Ahlendorf";
    if(!empty($_POST["zustaendig_1"])) echo $_POST["zustaendig_1"];
    echo "'>";

    echo "<input type='checkbox' name='zustaendig_2' value='Stadter";
    if(!empty($_POST["zustaendig_2"])) echo $_POST["zustaendig_2"];
    echo "'>";

    echo "</font></td>";

    PHP-Ende -----------------------
     
  2. Macropolis

    Macropolis Tokyo Rose

    Dabei seit:
    27.02.08
    Beiträge:
    68
    Weisst Du, was Dein Code überhaupt macht? Der schreibt den value der Checkbox erneut in das value-Attribut hinein. Das klappt so nicht. Wenn Du möchtest, dass die Checkbox abgehakt wird, solltest Du stattdessen das Attribut "checked" setzen.
    Beispiel:
    Code:
    echo "<input type='checkbox' name='zustaendig_1' value='Ahlendorf'";
    if(!empty($_POST["zustaendig_1"])) echo ' checked="checked"';
    echo ">"; 
    
    Unabhängig davon ist Dein Code ein gutes Beispiel dafür, wie man PHP-Code NICHT schreiben sollte. Versuche PHP-Code und HTML strikt zu trennen, indem Du z.B. auf eine Template-Engine wie z.B. Smarty zurückgreifst.
    Durch bessere Programmierung bekommst Du auch deutlich kürzeren Code hin - das Zusammenbauen des select-Tags z.B. (ab Zeile 90) könntest Du z.B. um gut 2/3 kürzen.
    Aber das nur am Rande ...

    HTH,

    Macropolis
     
  3. Tyrra

    Tyrra Holländischer Prinz

    Dabei seit:
    17.12.07
    Beiträge:
    1.869
    Danke!
    Dein Tipp hat mich schon einen Schritt weiter gebracht - jetzt wird wenigstens schon mal was ausgegeben.

    Aber Irgendwie klappt das noch nicht ganz - es werden immer alle Beiträge angezeigt!
     
    #3 Tyrra, 13.07.09
    Zuletzt bearbeitet: 13.07.09
  4. Macropolis

    Macropolis Tokyo Rose

    Dabei seit:
    27.02.08
    Beiträge:
    68
    Lass Dir doch z.B. mit var_dump mal die SQL-Query ausgeben und schau, dass Du sie anschließend z.B. in phpmyadmin so modifizierst, dass die erwarteten Ergebnisse rauskommen.
    Auf diese Weise sollte es klarer sein, an welcher Stelle Du Deinen Code anpassen musst.

    HTH,

    Macropolis
     
  5. Tyrra

    Tyrra Holländischer Prinz

    Dabei seit:
    17.12.07
    Beiträge:
    1.869
    habs hinbekommen - war ein Schreibfehler in einer Variablen die ich übersehen habe - manchmal sieht man den Wald vor lauter Bäumen nicht mehr ;)
     

Diese Seite empfehlen