Mailinglisten-Archive |
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