phpbar.de logo

Mailinglisten-Archive

[php] Abfrageproblem zur Formularbehandlung, -auswertung

[php] Abfrageproblem zur Formularbehandlung, -auswertung

Sebastian Mendel lists at sebastianmendel.de
Die Mai 30 11:17:55 CEST 2006


Steffen Kother schrieb:
> Hallo Leute,
> 
> würde gern mal wissen, wie ihr die verschiedenen Formularaktionen 
> auswerten würdet bzw. wie es sich optimieren liese.
> 
> PHP-Version ist 4.x.y und es kommt in diesen/m Formular(en) kein 
> Javascript zur Anwendung.
> 
> Ich habe ein Basisskript "step.1.create.php", das mir mir zu Beginn ein 
> (leeres) Formular "Schritt 1" liefert. In diesem Formular gibt es ein 
> für die Anwendung allgemeines Menü:
> 
> "Zurück"     = $_POST['action']['back']:
>     verlässt die Anwendung mittels header()
> 
> "Neueingabe" = ($_POST['action']['clear']:
>     sendet das Formular an das Skript und leert $_POST und gibt wieder 
> "Schritt 1"
>     aus
> 
> "Laden"      = $_POST['action']['loadlocal']:
>     ruft das Skript auf, lädt und gibt das Formular für den Dateiupload 
> aus(, von
>     dort aus wird wieder das Skript aufgerufen und die Datei ausgewertet 
> und das
>     vorgefüllte Formular "Schritt 1" ausgegeben)
> 
> "Speichern"  = $_POST['action']['savelocal']:
>     sendet das Formular an das Skript ruft die Downloadfunktion auf und 
> fordert
>     sofern Datenvorhanden zu Download auf, das Formular "Schritt 1" 
> bleibt im
>     Hintergrund unverändert
> 
> "Drucken"    = $_POST['action']['print']:
>     sendet das Formular an das Skript und die Daten werden an das 
> Druckformular
>     weiter- und ausgegeben.
> 
> "Sichern"    = $_POST['action']['save']:
>     sendet das Formular und übergibt die Daten zur Validierung und 
> Speicherformular

was sind diese $_POST['action']'s denn? submit-Knöpfe oder Checkboxen 
oder Radioa-Knöpfe?

soll immer nur eine Bedingung erfüült sein oder können auch mehrere 
zugleich stimmen?

> Bei mir sieht die Überprüfung auf die entsprechende "Action", das 
> Skript, so aus:
> 
> <?php
> 
> require_once('../../../config/config.main.inc.php');
> require_once('../../../config/config.reklamation.inc.php');
> require_once('../../../library/commonPlus.class.inc.php');
> 
> $schritt1 =& single('common');
> $schritt1 -> reqClassesPlus('template:mysql:reklamation:step1', false);
> 
> if (!empty($_POST['action']) ) {
> 
>     $action = $_POST['action'];
> 
>     if (!empty($action['back']) && empty($_POST['return_from_print'])) {
> 
>         header('Location: 
> http://nbkother/rekl_v2_test/modules/vertrieb/reklamationen');
>         exit;
> 
>     } elseif (!empty($action['clear'])) {
> 
>         $_POST = array();
> 
>     } elseif (!empty($action['savelocal'])) {
> 
>         $schritt1 -> reklamation -> 
> saveFormLocal('Reklamation_Schritt_1');
>         $_POST['action'] = '';
> 
>     }
> }
> 
> if (empty($_POST['action']) || (empty($action['print']) && 
> empty($action['save']))) {
> 
>     $schritt1 -> step1 -> setupPageStep(&$schritt1, 'Schritt 1');
>     $schritt1 -> step1 -> setupForm(&$schritt1);
>     $schritt1 -> template -> display('Schritt 1');
> 
> } elseif (!empty($action['loadloacal'])) {
> 
>     $schritt1 -> reklamation -> loadFromLocal();
> 
> } elseif (!empty($action['print'])) {
> 
>     $schritt1 -> reklamation -> printStep(&$schritt1);
> 
> } elseif (!empty($action['save'])) {
> 
>     // Validierung und Speicherung der Daten in Datenbank bzw. Ruckkehr 
> zur Eingabe
> 
> }
> ?>

warum fragst du mal $action und mal $_POST['action'] ab? das ist etwas 
verwirrend hier ...


> Wie würdet ihr die Abfrage(n) machen? Würde mich über eure Meinungen 
> freuen.

<?php

$action = empty($_POST['action']) ? 'default' : key($_POST['action']);

switch ($action) {
     case 'print' :
         // ...
         break;
     case 'save' :
         // ...
         break;
     case 'loadlocal' :
         // ...
         break;
     case 'default' :
     default :
         // ...
         break;
}
?>

oder einfach:

$schritt1->doAction($action);

;-)


-- 
Sebastian Mendel

www.sebastianmendel.de

php::bar PHP Wiki   -   Listenarchive