Feld im aufrufenden Formular updaten

  • Ich wiederhole mich nur ungern, aber...

    Ich würde dir empfehlen, dich erst mal mit Einsteigertutorials in die beiden Sprachen einzuarbeiten, dann geht hinterher die Entwicklung schneller.


    Kann ich das nicht mit PHP direkt erreichen?

    Klar. Das <?php echo "$lcTestFeld1" ?> gibt dir den Wert der Variable $lcTestFeld1 aus. Wenn du diesen Wert im JavaScript haben willst, schreib ihn da rein. Wenn du ihn im Formularfeld haben willst, schreib ihn dort rein.


    Joomla bietet für all das übrigens eigene Methoden (Formular definieren, aufbauen, ausgeben, Werte validieren, Werte setzen, speichern etc). Auch dazu wurde dir schon mal geraten:

    Die Richtige

    Du solltest den Joomla!-Standard mit XML-generierten Formulare verwenden. Dort gibt es dann im Model eine getForm und loadFormData-Methode. Letztere kannst du dann verwenden um Werte für das Formular vorzubelegen.

    Auch das hat wieder eine längere Einarbeitungszeit im Voraus, führt aber dazu, dass du am Ende eine saubere Joomla-Komponente hättest, die mit Joomla zusammenspielt und vernünftig eingebunden und abgesichert werden kann. Ausführliche Anleitungen dazu gibt es hier:

    https://docs.joomla.org/Specia…How_a_Component_Functions

    https://docs.joomla.org/Specia…veloping_an_MVC_Component

  • Vielleicht mal als Erklärung, damit das Grundverständnis zwischen Javascript und PHP da ist.

    PHP - ist eine Serverseitige Sprache. Das heißt dass alle Befehle auf dem Server ausgeführt werden und das Ergebnis wird dann an den Client (Webbrowser) gesendet und dort angezeigt. <?php echo "Mein Blubber" ?> führt der Server aus und sagt ihm. zeige an dieser Stelle den Text "Mein Blubber" an. Beim Client kommt an der Stelle nur "Mein Blubber" an.

    JavaScript - ist eine Clientseitige Sprache. Das heißt, dass alle Befehle auf dem Client ausgeführt werden und nicht auf dem Server.

    Wenn Du Dir im Bowser den Quelltext anschaust, dann findest Du keine PHP Befehle, dafür aber javascript.


    Der nachfolgende Befehl in einer PHP Datei sagt dem Server: Gebe das Dokument an den Browser, aber gebe zuvor den Inhalt der Variable $lcTestFeld1 an der Stelle aus, wo es mit dem echo Befehl steht.

    PHP
    1. <script type="text/javascript">
    2. document.getElementById('feldid2').value = <?php echo "$lcTestFeld1" ?>;
    3. </script>

    Der Browser empfängt die Datei und findet darin das Javascript und führt dieses aus, wenn es angezeigt wird.

  • So, habe die empfohlenen Artikel gelesen und auch einiges gelernt.

    Auch LukasHH hat mein Verständnis zu PHP und JavaScript verbessert.


    Hallo Addi: tut mir leid. Ich dachte die Codebeispiele seien vollständig zum Verständnis meiner jeweiligen Frage.


    Habe in dem folgenden Beispiel scheinbar wieder falsche Erwartungen:

    Ich habe ein formular.

    Darin unter anderem 2 Buttons.


    Wenn ich einen Button betätige, wird auch die betreffende function aufgerufen. (Der passende ALERT zum Test wird angezeigt,)

    Allerdings möchte ich in der function eine SESSION-Variable setzen, da das gleiche Formular aufgerufen wird.


    Das gelingt aber nicht. Es steht immer "Abholung" im Feld.

    Es sieht für mich so aus, als ob php's immer alle ausgeführt werden unhabhängig davon, daß sie in den funtions stehen.

    Gibt es eine andere Möglichkeit, die Variable zu setzen?


    Hoffe, ich erzeuge nicht wieder Unmut bei euch.

    Ihr könnt sicher sein, bevor ich hier eine Frage stelle, habe ich ausgiebig gesucht und getestet.

    Gruß Harro

  • Du kannst im JavaScript keine php-Variable setzten. Die php-Verarbeitung ist zu diesem Zeitpunkt schon gelaufen. Wie schon mehrfach erwähnt findet die JavaScript-Verarbeitung auf dem Client (im Browser) statt, die php-Verarbeitung auf dem Server.


    Sieh dir mal die beiden JavaScript Funktionen im Quelltext im Browser an, was php daraus gemacht hat.

  • Es sieht für mich so aus, als ob php's immer alle ausgeführt werden unhabhängig davon, daß sie in den funtions stehen.

    Genau so ist es, da hast du die Ursache ja schon gefunden.


    Sorry, aber ich bin hier jetzt auch raus. Ich hab mir mal dein Profil und deine Beiträge etwas genauer angeschaut. Du bist hier seit ziemlich genau zwei Jahren angemeldet. Seither scheinst du dich beruflich mit Projekten, die in PHP und JavaScript für Joomla geschrieben sind, zu beschäftigen und bekommst dafür wahrscheinlich Geld. Aber auch nach diesen zwei Jahren scheinst du immer noch nicht die absoluten Basics dieser drei Systeme durchdrungen zu haben. Stattdessen frickelst du dir irgendwas zusammen und bist mittlerweile bei knapp 100 Beiträgen, in denen dir Leute Anfängerfragen zu deinem Job beantworten.

    Nicht falsch verstehen: Ich habe kein Problem damit, hier Leuten bei ihren Fragen zu helfen, die mit Joomla ihr Geld verdienen. Niemand kann alles wissen und in so einem Forum kann man sich auch über berufliche Dinge austauschen, nicht nur als Hobby. Aber nicht, wenn es um absolute Basics geht.


    Das scheint ja ein langfristiges Projekt bei dir zu sein, wenn du da seit zwei Jahren dran sitzt. Warum machst du dann nicht mal einen Schritt zurück und arbeitest dich vernünftig in PHP, JavaScript und Joomla ein? (Und zwar bitte zunächst PHP und JavaScript getrennt voneinander, um die nicht immer zu vermischen!) Dann müsstest du dir das nicht alles irgendwie zusammenfrickeln und am Ende könnte ein ordentliches Produkt rauskommen.


    Disclaimer, damit da keine Missverständnisse entstehen: Diesen Beitrag schreibe ich aus meiner persönlichen Sicht als Supporter, nicht in einer irgendwie offiziellen oder moderierenden Tätigkeit, die ich für diesen Teil des Forums auch gar nicht innehabe.

  • Man kann die Werte in Form-Variable setzen, die man dann im nächsten Schritt im php verarbeiten kann, z. B. dort in Session-Varible setzen. Aber das ist "native" html und php und hat mit Joomla nichts zu tun.


    Was Joomla für solche Fälle für Möglichkeiten bietet weiß ich nicht.


    Ansonsten kann ich hier wohl nicht mehr weiter helfen.

  • Hi,

    ich sitze da keine 2 Jahre dran. Habe immer nur sporadisch was gemacht.

    Mache das aus Gefälligkeit für einen Kunden.


    Hab vor 2 Jahren eine kleine Erweiterung gemacht mit Hilfe eines Softwarehauses, das aber leider nicht mehr verfügbar ist.

    Vor 1 Jahr habe ich noch mal kleinere Anpassungen gemacht.

    Jetzt arbeite ich wieder an einer Erweiterung, wo ich an wenigen unerwarteten Hindernissen hänge, die sicher darauf basieren, weil mir grundlegende Infos fehlen.

    Dazwischen hatte ich nichts damit zu tun, weil alles sauber und zuverlässig läuft.


    Würde ja gerne diese Aufgabe an einen "richtigen" JOOMLA-Entwickler weiter reichen, habe bisher nur niemanden gefunden.

    Hatte hier ja auch schon mal danach gefragt.

    Vielleicht hat ja jemand einen Tipp wo ich jemanden finde.


    Würde mich freuen, wenn ich doch noch Tipps zu meinen Fragen bekäme, es sind ja nicht so viele. :-)


    Gruß Harro

  • Ich versuche es noch mal :-)

    Was ich hier mache passiert nur "unter dem Schirm von JOOMLA!"

    Es geht hier um selbst erstellte Formulare und der Navigation zwischen diesen Formularen.

    Erdacht hat sich das mein Vorgänger, der nicht mehr verfügbar ist.


    Mein aktuelles Problem in diesem Thread:

    Ich befinde mich in Form "Erstellen TransportAuftrag")

    Über den Button "Liefer-Adresse suchen" wird mit einem Parameter ( StandortTyp=Lieferung) das Form "StandortAuswahl" aufgerufen.

    Im Form "StandortAuswahl" wird über den Übergabe-Parameter, Usereingaben und ODBC() eine Standort-Adresse ermittelt.

    Das funktioniert soweit!


    Diese ermittelte Adresse soll nun an das aufrufende Formular "Erstellen TransportAuftrag" zurückgegeben werden.

    Hat jemand hierzu Tipps, wie ich das erreiche?

  • Wenn ich das richtig sehe, arbeitet das mit der Komponente com_guptadatenbank. Ist diese Komponente von Deinem Vorgänger, die Du nun ändern möchtest?

    Wenn ja, dann muss ggf. die Komponente angepasst werden. Ohne diese zu kennen, kann man schlecht Tipps dazu geben. Da Dir scheinbar auch die Grundkenntnisse in der Webentwicklung fehlen, wäre es besser, wenn Du Dich an jemanden wendest der das übernehmen kann. Oben im Menü sind mehrere Dienstleister aufgeführt, an denen Du Dich wenden kannst.

    Mit diesen verstückelten und nur halben Informationen wird hier niemand etwas anfangen und Dir helfen können.

  • Mit diesen verstückelten und nur halben Informationen wird hier niemand etwas anfangen und Dir helfen können.

    Ich verstehe die Kritik nicht, wieso "verstückelt" oder "halbe Information"?


    Es geht mir ausschließlich um die Navigation zwischen Formularen.

    Layout, Logik und Lesen/Schreiben über ODBC-Treiber funktioniert.


    Ich habe doch die Code-Zeilen für den Knopf mit der URL eingestellt.

    Außerdem habe ich die Code-Zeilen für die Function für das Window.open() eingestellt.


    Meine Frage war: "Wie kann ich zurück zur aufrufenden Seite kommen?"


    Dazu braucht es doch den Rest nicht oder doch?

    Es ist kein Geheimnis aber doch auch nicht hilfreich für meine Frage oder übersehe ich was?

    Kann das ganze Formular ( View und Model ) einstellen, aber das bringt doch nichts zu meiner Frage.


    Grade bin ich auf "redirect" gestoßen, daß hört sich für mich interessant an.


    Habe heute Nachmittag meinen Termin mit einem Dienstleister in der Nähe.

    Bin gespannt ...


    Gruß Harro

  • Am Mittwoch war ich bei einem Profi in der Nähe.


    Meine Frage war ja: "Wie kann ich zurück zur aufrufenden Seite zurück kommen und dabei auch Daten zurückschreiben?"


    Er hat mir das spontan in meine Anwendung einprogrammiert.

    Es war etwas komplizierter als ich es mir vorgestellt hatte, aber letztlich nur wenige Zeilen.


    Im Prinzip läuft es so:

    - vor dem Aufruf der neuen Seite

    - Daten von der aktuellen Seite sichern.

    - neue Seite aufrufen, bearbeiten und ursprüngliche Seite (mit Rückgabe-Daten) aufrufen

    - gesicherte Daten wieder herstellen und Rückgabedaten in die entsprechenden Felder stellen.


    Letztlich war der Tipp mich an einen Profi zu wenden goldrichtig. Hätte es alleine nie geschafft.

    Danke für eure Unterstützung.