Anzeige:
Seite 2 von 2 ErsteErste 12
Ergebnis 16 bis 18 von 18

Thema: Werte aus Formular an eine bestimmte Funktion übergeben

  1. #16
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    03.10.2001
    Ort
    potsdam
    Beiträge
    881
    hat recht, ich versuch's mit einem Beispiel:

    Ich arbeite mit dem Templatesystem FastTemplate. Damit sieht es in vielen Funktionen etwa so aus:
    Code:
    $lvsmab=getlvsmabsel($rs_arr[0]["lvs_nr"],$rs_arr[0]["person_id"],"gotourl('".$PHP_SELF."?action=call&opt=03&callid=$callid&personid='+document.frmcall.mabpersonid[document.frmcall.mabpersonid.selectedIndex].value)");
    $tpl->assign(array(	
    			"{MAINTITEL}"	=> "Call-Bearbeitung",
    			"{CALLNR}"		=> $rs_arr[0]["callnr"],
    			"{LVSMAB}"		=> $lvsmab,
    			"{STATUS}"		=> $rs_arr[0]["status_text"],
    			"{COWNER}"		=> $rs_arr[0]["username"],
    			"{CCALL}"		=> $ccall,
    			"{PAGENAME}"	=> $PHP_SELF,
    			"{TABLE}"		=> $tabval,
    			"{NEXT}"		=> $next,
    			"{PREV}"		=> $prev,
    			"{LVSINFO}"		=> $lvsinfo,
    			"{CALLINFO}"	=> $callinfo,
    			"{LVSNR}"		=> $rs_arr[0]["lvs_nr"],
    			"{ACTION}"		=> $callaction,
    			"{STATUSEDIT}"	=> $statusedit,
    			"{OWNEREDIT}"	=> $owneredit,
    			"{RELOADURL}"	=> $PHP_SELF."?".$QUERY_STRING
    					 ));
    die Funktion "getlvsmabsel" erzeugt ein select-Feld. Dazu ist eine Datenbankabfrage notwendig. Das Ergebis wird überprüft und der Fehlerfall abgefangen. All diese Aktionen würden den Code im der Hauptfunktion aufblähen und damit schwehrer pflegbar machen. Ich habe jetzt nur die Belegung eine Var herausgegriffen. Wenn du dir vorstellst, dass ich mit den anderen auch so verfahre wird meine Intension vieleicht klarer.

    Die Frage nach deine Projekterfahrung dienete keineswegs irgendeinem Größenvergleich. Ich habe die Notwendigkeit lesbaren Code zu erzeugen auch erst eingesehen, nachdem ich lange Tage fluchend vor meinem alten "Spagetti-Code" gesessen habe...
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  2. #17
    Registrierter Benutzer Avatar von Stanislaus
    Registriert seit
    04.07.2003
    Ort
    Mönchengladbach
    Beiträge
    80
    Original geschrieben von ohcibi
    ooehm. es is doch vollkommen sinnlos die $_POST in der funktion aufzurufen ohne sie zu uebergeben... unabhaengig davon ob dafuer register_globals auf on gegeben werden muss oder so.... denn dann is die funktion ja nicht universell einsetzbar und meine frage is jetze wozu man eine extra funktion fuer einen nur einmal aufgerufenen vorgang schreiben sollte.....
    Ganz einfach. Es kommt auf die Aufgabe an, die diese Funktion erfüllen soll. Hast Du z.B. eine Funktion, die irgendeinen Wert (bsp. einen Preis) mit Tausendertrennzeichen und Währung versieht und die Werte kommen aus der DB aus GET und POST etc. dann übergibst Du natürlich den Wert an die Funktion.
    Es kann aber auch den Fall geben, das eine Funktion zwar mehrfach benötigt wird aber immer nur die selben Variablen auswertet.
    Beispiel (aus meinem atkl Projekt): Es existiert ein Formular, daß drei Submit Buttons beinhaltet 1. Änderungen speichern, 2. Neuen Eintrag anlegen und 3. Datensatz löschen. Da das Formular immer auf das selbe Script verweist muss besagtes Script dann auswerten, welcher der drei submit Buttons gedrückt wurde um entsprechend zu reagieren. Dazu habe ich eine Funktion getFormAction(), die keinen übergabeparameter erwartet denn die Submit Buttons sind immer im $_POST Array und nirgendwo sonst. Je nach dem welchen subimt Button die Funktion nun im $_POST Arry findet gibt sie UPDATE, DELETE oder NEW zurück. Würde ich das mit einer Übergabe machen wäre es eh immer der selbe wert nämlich $_POST und darauf kann die Funktion nunmal auch selber zugreifen.
    Das ganze hab ich nun in eine Basisklasse gepackt, von der alle Formulare abgeleitet sind und weiß so immer ganz genau welcher Button gedrückt wurde.

    Ich hoffe anhand des Beispiels ist das ganze etwas klarer geworden.

    Bis neulich ...

  3. #18
    Registrierter Benutzer
    Registriert seit
    06.11.2003
    Ort
    sessel vor dem pc
    Beiträge
    66
    Original geschrieben von Stanislaus


    Ich hoffe anhand des Beispiels ist das ganze etwas klarer geworden.

    das ist es wohl... ich danke dir...

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •