jein
*guck_schief*
also das automatisch würde ich mir noch mehr automatisch wünschen. ein
$this->_forms['modul']['formname']['element']['name'] = $value;
wäre schon zu viel
Zuviel?
2 wege sind möglich
Hm...
1 weg komplett in der ajax classe eine function einbauen die alle elemente ausliest und entsprechend setzt.
würde gehen hätte vorteile weil dann nix mehr manuell gemacht werden müsste ausserdem gehts bei laufzeit aber auch nachteile relativ viel js zu nötig
Wie stellst du dir eine Funktion vor, wenn diese noch nicht mal die Elemente in einem Formular kennt?
2 weg ne billig lösung
die formular class merkt sich halt die entsprechenden daten. im array oder sonst wie. wobei auch dann das erzeugen des js umfangreich wird weil du ja das array so nicht einfach in js einfügen kannst.
öhm, eigentlich geht es mit JS sogar ganz gut.

Nur habe ich dato bis heute noch nicht umgesetzt. Obwohl mit einem Array, lässt sich eine JS-Funktion basteln, die aus dem Array die Elemente und dessen Name daraus die Werte im Formular ausliest. Und dementsprechend ein Request zusammenbaut.
Daher könnte ich mir die Lösung auch ganz gut vorstellen, da wenig JS-Code an den Browser gesendet werden.
Hier so ein kleiner Ansatz mit Array und For-in-Schleife:
http://de.selfhtml.org/javascript/objekte/array.htm#assoziative_arrays
http://de.selfhtml.org/javascript/sprache/schleifen.htm#for_in
>Wird eigentlich auch der Name des Modules
ja aber das nützt dir nichts
es steht zwar das aktive "haupt" modul zurverfügung das heisst aber noch lange nicht das es nicht ausnahemn gibt
beispiel
mach eine centerbox search die nur aktiv sein soll wenn forum sichtbar
dann würde trotzdem das die box sichtbar wäre natürlich als aktives modul forum gesetzt sein. somit hilft dir das nicht.
Sowas ähnliches habe ich mir auch schon gedacht, dass es so nicht einfach ist.
ob ajax geladen werden soll oder nicht würde ich bei der lösung
$opnConfig['opnOutput']->SetDisplayVar ($var, $wert);
bleiben. damit kann das modul recht flexibel daten setzen die sich auf die jeweilige box beziehen
Äh, und was nutzt mir im Endeffekt dieser Funktionsaufruf, wenn doch die Klasse
class.opn_output.php auch prüfen kann, ob die Klasse $opnConfig['opnajax'] (manuell im Modul) initiert worden ist.
Sorry, ich verstehe es nicht so ganz.
Denn die Klasse
$opnConfig['opnajax'] muss von der ersten Initierung bis zum Ende des Scripts (Ausgabe zum Browser) existieren. Damit die Ajax-Klasse weiß, welchen JS-Code im Header gebaut werden soll, die letztendlich von
class.opn_output.php aufgerufen wird und leider muss es in einem Rutsch geschehen.
Und was mit der Funktion
$opnConfig['opnOutput']->SetDisplayVar ($var, $wert); angeht:
Einmal definiert (inkl. Formularelemente), wird diese einfach vom nachfolgenden Modul überschrieben, oder sehe ich das verkehrt?
Hier ein Auschnitt aus
class.opn_output.php:
function SetDisplayVar ($key, $var, $mode = false) {
global $opnConfig;
...
if ($key !== false) {
$this->_SetDisplayVar[$key] = $var;
}
...
In meinen Augen ist der Vorschlag leider nicht gerade flexibel. Stell dir mal
3 Sideboxen und 1 Centerbox vor, die zusammen Ajax verwenden. Und nun?
Gruß
Sebastian