DFML Variable in der <DFML> Sektion zuweisen

  • Hi,


    ich habe ein DFML Formular welches auf eine Datei unter "SERVER/Ressourcen/Formulare/Applikationen" zugreift. Um sich dort das Layout und weitere Informationen zu ziehen.


    DFML Teil der Datei unter Applikationen (Es gibt dort noch weitere DFML Teile):


    Durch das betätigen des Buttons mit dem name=AKTIVIEREN werden beide Teil ausgeführt.
    Jetzt möchte ich je nachdem welcher Button betätigt wird einen anderen DFML Teil ausführen - Das funktioniert ohne Probleme.
    Allerdings möchte ich das im DFML Teil eine DFML Variable mit dem Namen "status=" in das entsprechene DFML Formular übergeben wird. Damit beim nächsten aufruf des DFML Formulars diese Variable ausgelesen und angezeigt wird.


    Hier die DFML Datei in der die Variablen gespeichert werden:

    Code
    [TESTSCRIPT, STARTUP="TESTDFML"]
    user=Zentrale
    comment=zu Hause
    number=*21*00000#
    status=



    Wenn ich jetzt den button mit dem namen "AKTIVIEREN" anklicke soll im DFML Teil die Variable "status=" einen Wert zugewiesen bekommen. Wenn ich einen anderen Button betätige soll "status=" einen anderen Wert bekommen.


    Wie kann ich das umsetzten. Ich probiere schon den ganzen Abend daran herum und komme nicht weiter.
    Wäre sehr dankbar für einen Tipp oder etwas Hilfe bei dem Problemchen.



    Danke und Gruß,
    Rami

  • Hallo Rami,


    bin nicht sicher ob das so funktioniert - also auf den "Speicherbereich" eines anderen DFML zugreifen.
    Das sollte aber mit Javascriptmitteln möglich sein, ist ja letztlich nur eine Art INI Datei in der die Daten des DFML abgelegt werden.


    Gruß Jens

    Es wäre schön, Deinen Vornamen zu kennen. Bitte beachte unsere Forenregeln und die Netiquette.

    ----------

    Bitte teilen/weitersagen: STARFACE Module Databasewww.sfm-db.com


    STARFACE Excellence PartnerSTARFACE Module CreatorTobit.Software Authorized Partner (Mailserver/Unified Messaging)work4all! Solution Partner (CRM/ERP)Securepoint Professional Partner (Firewall/UTM)


    1 Qubit - J.Suingwww.1qubit.deSoftware - Service - Coding

  • Hey Jens,


    ich kann ja mit einem normalen input Feld Daten in der "ini" also dem DFML Formular Daten speichern.
    Meinste da gibt es keine andere Möglichkeit. Hab nicht wirklich ahnung von javascript.


    Naja werd mal schauen wie ich das mit JS machen kann. Mal gucken ob ich was finde...


    Gruß
    Rami

  • Hallo Rami,


    also speichern kannst Du z.B. noch mit einem input type=hidden, also ein unsichtbares input Feld.
    Ich denke aber die Problematik ist, dass Du in das jeweils andere DFML speichern willst, oder habe ich da was falsch verstanden?
    Innerhalb des gleichen sollte es kein Problem sein, auf den Inhalt eines anderen wirst Du so aber nicht zugreifen können.


    Gruß Jens

    Es wäre schön, Deinen Vornamen zu kennen. Bitte beachte unsere Forenregeln und die Netiquette.

    ----------

    Bitte teilen/weitersagen: STARFACE Module Databasewww.sfm-db.com


    STARFACE Excellence PartnerSTARFACE Module CreatorTobit.Software Authorized Partner (Mailserver/Unified Messaging)work4all! Solution Partner (CRM/ERP)Securepoint Professional Partner (Firewall/UTM)


    1 Qubit - J.Suingwww.1qubit.deSoftware - Service - Coding

  • Moin Jens,


    mh aber wieso ist das ein anderes DFML?


    Also hier die "Masterdatei" aus Applikationen (keine DFML Datei) jedenfalls ist der Hacken DFML nicht an.


    Nicht wundern habe teilweise css und javascript entfernt damit das nicht ganz so lang wird.
    Also in dieser Datei sind die "Styles" aber keine Daten. Aber um das Formular aufzurufen mache ich einen Doppelklick auf die folgende Datei. In dieser Datei werden die Eingaben gespeichert.


    Code
    [VOICE, STARTUP="WEITERLEITUNG"]
    user=testnutzer
    comment=zu Hause
    number=*#12345



    So und jetzt möchte ich in diesem DFML wenn jemand auf den Button "AKTIVIEREN" klickt das beim nächsten Aufruf dieses Formulars ein Status angezeigt wird, Aktiv oder Inaktiv. Dafür muss muss ich ja irgendwie einen Wert übergeben sobald er auf den Button klickt. Habe gestern mit Javascript versucht ein Input type=hidden feld mit DvDFML.forms[0].save(); zu speichern aber da bekomme ich immer einen unbekannten Fehler :( ...
    Oder htte ich was falsch verstanden?

  • Moin,


    um das ganze etwas zu entwirren.


    Am Ende des Formulars werden im DFML Teil via Javascript das Form[0] gespeichert und in der "ini" abgelegt.
    Jetzt habe ich mir überlegt einfach ein weiteres From zu erstellen (type=hidden) und dies nur zu speichern wenn auch wirklich der AKTIVIEREN Button betätigt wurde.


    Code
    <DFML name=AKTIVIEREN option=nosend>
    ##SCRIPT language=JavaScript##
    var DvDFML;
    DvDFML=document.parentWindow.external;
    DvDFML.forms[0].save();
    DvDFML.close();
    ##/SCRIPT##
    </DFML>


    In dem Beispiel Code wird einfach das forms[0] gespeichert. Jetzt habe ich unter dieses Form im HTML Teil ein weiteres Form erstellt. Aber ich bekomme es ums verrecken nicht hin das forms[0] und forms[1] zu speichern.


    Mein versuch:


    HTML Teil:

    Code
    <FORM METHOD="GET" ENCTYPE="application/x-www-form-urlencoded">
     ...
    </form>
    
    
    <FORM METHOD="GET" ENCTYPE="application/x-www-form-urlencoded">
      <!-- hier soll der aktiv status übergeben werden -->
      <input type="hidden" size="20" name="status" value="aktiv">
     </form>


    DFML Teil (funktioniert nicht):

    Code
    <DFML name=AKTIVIEREN option=nosend>
    ##SCRIPT language=JavaScript##
     var DvDFML;
     DvDFML=document.parentWindow.external;
     DvDFML.forms[0].save();
     DvDFML.forms[1].save();
     DvDFML.close();
    ##/SCRIPT##
    </DFML>


    Ich schaffe es einfach nicht das forms[1] zu speichern. Wenn ich nur das form1 speichern möchte (ohne form0) klappt das auch nicht (unbekannter Fehler).
    Ich habe es mit IDs (also forms[0]) sowie auch mit den Namen versucht. Ohne Erfolg.


    Kann ich in dem DFML Teil nur ein Form übergeben?? Woran könnte das liegen?


    Gruß
    Rami

  • Hallo Rami,


    haben die beiden Postings miteinander zu tun? Irgendwie verwirrt mich das immer mehr. ;)


    Zu dem Punkt mit dem Status:
    Wenn es nur ein DFML ist, dann kannst Du doch einfache ein Checkbox für den Status machen, die fragst Du per Javascript auf die Eigenschaft "checked" ab und speicherst dann den Wert 1 oder 0.


    Zu dem Teil mit den Forms. Kann Dir nicht sagen ob man nur eins verwenden kann, aber ich würde es auch eher mit dem id-Attribut testen, also sowas


    Code
    irgendwas


    Und dann mit dem JS-Befehl


    Code
    document.getElementById("meinForm");


    Das klappt zumindest bei Webseiten recht zuverlässig.


    Gruß Jens

    Es wäre schön, Deinen Vornamen zu kennen. Bitte beachte unsere Forenregeln und die Netiquette.

    ----------

    Bitte teilen/weitersagen: STARFACE Module Databasewww.sfm-db.com


    STARFACE Excellence PartnerSTARFACE Module CreatorTobit.Software Authorized Partner (Mailserver/Unified Messaging)work4all! Solution Partner (CRM/ERP)Securepoint Professional Partner (Firewall/UTM)


    1 Qubit - J.Suingwww.1qubit.deSoftware - Service - Coding

  • Moin,


    ja sorry wollte das eigentlich etwas entwirren... ^^


    Der Code sollte bei Webseiten auch wunderbar funktionieren... Mit jQuery hat das immer gut funktioniert nur mit dem speichern im DFML nicht.. bzw. mache ich womöglich etwas falsch.


    Mit Check boxen geht das leider nicht da ich den Status je nachdem welcher Button betätigt wird ändern möchte.
    bzw. wollte ich das nicht mit Check boxen machen. Ich denk nochmal drüber nach...




    Ich Prinzip möchte ich wenn ich einen Button betätige den Wert in der DFML Datei ändern.


    1. Beim klick auf Button aktiv/inaktiv sollen die Daten gespeichert werden und es soll ne mail geschrieben werden.
    2. Beim nächsten Aufruf des Formulars möchte ich das oben je nachdem welcher Button das letzte mal betätigt wurde aktiv oder inaktiv ausgeben. (Deshalb mein Gedanke einen Wert beim Klick auf den Button in die DFML schreiben und beim nächsten mal auslesen.)


    Gruß
    Rami

  • Hallo Rami,


    jaaa, jQuery macht das Leben ja auch sehr viel leichter. GetElementByID ist aber nicht jQuery und sollte hier ebenso funktionieren. Theoretisch klappt vermutlich sogar jQuery wenn Du es einbindest, habs noch nicht versucht.
    DFML ist ja letztlich nur eine Befehlserweiterung.


    Ich würde versuchen, beim Klick auf den Button eine hidden Variable zu setzen. Die kann ja innerhalb Deines normalen Forms bleiben, dann brauchst Du dafür keines Extra.
    Der Button schreibt setzt also z.B. per JS den Value des Hidden Input auf aktiv oder inaktiv:


    Code
    <input type=hidden name=status id=status value=aktiv />


    Beim Speichern wird der Status dann mitgespeichert.


    Gruß Jens

    Es wäre schön, Deinen Vornamen zu kennen. Bitte beachte unsere Forenregeln und die Netiquette.

    ----------

    Bitte teilen/weitersagen: STARFACE Module Databasewww.sfm-db.com


    STARFACE Excellence PartnerSTARFACE Module CreatorTobit.Software Authorized Partner (Mailserver/Unified Messaging)work4all! Solution Partner (CRM/ERP)Securepoint Professional Partner (Firewall/UTM)


    1 Qubit - J.Suingwww.1qubit.deSoftware - Service - Coding

  • Moin,


    hehe ja denkbar einfach und hat auch sofort funktioniert.
    Auf die Idee hätte ich auch mal kommen können, 2 Zeilen JS Code unglaublich 8|
    Naja die Kopfnuss kannste mir ja per PN schicken... :wacko:


    Gruß und vielen Dank,
    Rami

  • Hi Rami,


    kommt vor, Programmieren halt...
    Schön dass es klappt. Viel Erfolg noch.


    Gruß Jens

    Es wäre schön, Deinen Vornamen zu kennen. Bitte beachte unsere Forenregeln und die Netiquette.

    ----------

    Bitte teilen/weitersagen: STARFACE Module Databasewww.sfm-db.com


    STARFACE Excellence PartnerSTARFACE Module CreatorTobit.Software Authorized Partner (Mailserver/Unified Messaging)work4all! Solution Partner (CRM/ERP)Securepoint Professional Partner (Firewall/UTM)


    1 Qubit - J.Suingwww.1qubit.deSoftware - Service - Coding

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!