Sortierung mit Werten aus einem Formular

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sortierung mit Werten aus einem Formular

    Hallo,

    ich habe ein Formular, in dem man diverse Werte eingeben und auswählen kann (u.a Termin, Mitarbeiter, Projekt usw.)
    über einen Button wird das Formular abgeschickt und die gefunden Treffer aus der Datenbank, in einer Tabelle dargestellt.
    Das funktioniert auch wunderbar.

    Aber ich möchte jetzt die Sortierung nach den einzelnen Punkten (Mitarbeiter, Termin usw.) ermöglichen.

    Ich habe schon verschiedene Dinge ausprobiert.
    z.B. alle Werte über JavaScript zu übergeben. Aber das ist nicht besonders sauber.

    Ich wollte es nun mit einer Session versuchen. Also das ich alle Werte mit in die Session schreibe. Nur erscheint mir das auch recht umständlich. Gibt es eine einfachere Möglichkeit die Daten beizubehalten?!

    Meiner Select-Anweisung:

    PHP-Code:
    $sql "SELECT
            t.prioritaet, t.status_erledigt, t.gesperrt, t.termin, t.termin_ende, t.dauer_geplant,
            t.dauer_ist, t.bemerkung, t.zusatzaufwand, t.oeffentlich, t.todo, k.firma, p.projektname,
            t.z_cm_todo_id "
    ;

    $sql .= "FROM
             z_cm_todo AS t
             LEFT JOIN z_cm_projekt_2_z_cm_todo AS pt ON pt.todoid = t.z_cm_todo_id
             LEFT JOIN z_cm_projekt_bk AS p ON p.datensatzid = pt.projektid
             LEFT JOIN z_crm_kunden AS k ON k.datensatzid = p.kunde
             LEFT JOIN z_cm_user AS us ON us.todoid = pt.todoid
             LEFT JOIN users AS u ON u.userid = us.userid "
    ;

    $sql .= "WHERE
             t.status_erledigt BETWEEN '
    $_POST[text_erledigt_von]' AND '$_POST[text_erledigt_bis]' AND
             t.prioritaet BETWEEN '
    $_POST[text_prioritaet_von]' AND '$_POST[text_prioritaet_bis]' AND ";

    $sql .= "t.termin BETWEEN'" mk_SQLdate($_POST[termin_von]) . "'" " AND " "'" mk_SQLdate($_POST[termin_bis]) . "' AND ";
    $sql .= "t.termin_ende BETWEEN'" mk_SQLdate($_POST[termin_von_ende]) . "'" " AND " "'" mk_SQLdate($_POST[termin_bis_ende]) . "' ";

    if(
    $_SESSION['nurmeine'] == 1$sql .= "AND u.username = '$_SESSION[web_username]' ";
    if(
    $_POST['filter_gesperrt'] != 'false'$sql .= "AND t.gesperrt = '$_POST[filter_gesperrt]' ";
    if(
    $_POST['filter_zusatzaufwand'] != 'false'$sql .= "AND t.zusatzaufwand = '$_POST[filter_zusatzaufwand]' ";
    if(
    $_POST['filter_oeffentlich'] != 'false' && isset($_POST['filter_oeffentlich'])) $sql .= "AND t.oeffentlich = '$_POST[filter_oeffentlich]' ";
    if(
    $_GET['fkunde'] != 'false' && isset($_GET['fkunde'])) $sql .= "AND k.datensatzid = '$_GET[fkunde]' ";
    if(
    $_GET['fprojekt'] != 'false' && isset($_GET['fprojekt'])) $sql .= "AND p.datensatzid = '$_GET[fprojekt]' ";
    if(
    $_POST['filter_user'] != 'false' && isset($_POST['filter_user'])) $sql .= "AND u.userid = '$_POST[filter_user]' ";

    $sql .= "GROUP BY t.z_cm_todo_id ";

    // Hier wollte ich dann einfach die ORDER BY Funktion eibauen, also das worauf der User klickt, z.B

    $sql .= "ORDER BY $order ";
    // $order wäre dann z.B. k.firma 
    Mein Probelm ist das ich ja alle Daten aus dem Formular verliere, sobald ich auf einen Link klicke und ich finde keine saubere Möglichkeit dies zu lösen!

    Ich wäre für jeden Tipp sehr dankbar.

    Gruß
    Tim

  • #2
    Wieso machst Du kein select feld ins Formular auf dem die Sortierung ausgewählt werden kann? Hab ich meistens so gelöst...
    _____________
    Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
    [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

    Kommentar


    • #3
      ist ne gute Idee.
      Aber leider habe ich die Vorgabe das so zu verwirklichen ;(

      Kommentar


      • #4
        ich habe es jetzt doch mit der SESSION gemacht. Funktioniert sehr gut und ist garnicht so unkompfortabel, wie es im ersten moment schien.

        Kommentar

        Lädt...
        X