Post by taltenweg » Sat Dec 15, 2018 6:55 pm

Hallo zusammen,
ich habe folgendes Problem, auf dem Order Template gibt es einen Button der, wenn er gedrückt wird, eine Funktion im Controller ausführt. Soweit geht das auch. Nun möchte ich das die Funktion im Controller einen Rückgabewert in ein bestehendes Formularfeld des Templates (Twig) schreibt.
Leider finde ich keinen rechten Ansatz für das Problem. Ich habe eine globale Variable im Controller erzeugt << $twig->addGlobal('response', $json2); >> aber wie ich diese jetzt im Template in ein Formularfeld schreibe habe ich nicht herausfinden können.
Ich bin für jede Idee dankbar.

Grüße,
Thomas

Newbie

Posts

Joined
Fri Aug 10, 2012 1:35 am

Post by OSWorX » Sat Dec 15, 2018 9:02 pm

Leider ist die Beschreibung sehr schwammig.
Daher kann ich nur vermuten:

1. in der Vorlage wird der Buttonclick getriggert
2. löst eine Aktion aus welche den Controller aufruft
3. im Controller wird gemacht was gemacht werden soll
4. Controller gibt einen Rückgabewert retour

Was jetzt fehlt ist ganz einfach:
5. in der Vorlage den erhaltenen Wert einfach dem Feld zuordnen lassen und anzeigen

Full Stack Web Developer :: Dedicated OpenCart Development & Support DACH Region
Contact for Custom Work / Fast Support.


User avatar
Guru Member

Posts

Joined
Mon Jan 11, 2010 10:52 pm
Location - Austria

Post by taltenweg » Sat Dec 15, 2018 11:34 pm

OSWorX wrote:
Sat Dec 15, 2018 9:02 pm
Leider ist die Beschreibung sehr schwammig.
Daher kann ich nur vermuten:

1. in der Vorlage wird der Buttonclick getriggert
2. löst eine Aktion aus welche den Controller aufruft
3. im Controller wird gemacht was gemacht werden soll
4. Controller gibt einen Rückgabewert retour

Was jetzt fehlt ist ganz einfach:
5. in der Vorlage den erhaltenen Wert einfach dem Feld zuordnen lassen und anzeigen
Hallo,
genau so hatte ich mir das auch vorgestellt, ich mache aus dem Controller einen return und zeige den Returnwert dann im Feld an, aber das bekomme ich eben nicht hin.
Ich versuche mal mit etwas Code mehr Klarheit ins Dunkle zu bringen.
Im Order_Info.twig ist der Button eingebaut,

Code: Select all

<a href="{{ DPD }}" target="_blank" data-toggle="tooltip" title="{{ button_DPD }}" class="btn btn-shipping-DPD"><b>DPD</b></a> 
und das Feld angelegt,

Code: Select all

<div class="form-group">
                  <label class="col-sm-2 control-label" for="input-comment">Sendungsnummer</label>
                  <div class="col-sm-10">
                    <input type="text" name="tracking_number" maxlength="25" size="20" id="tracking_number" class="form-control" value="{{response}}">
                  </div>
                </div>
Im order.php gibt es die neue funktion DPD() die ein DPD Label per Webservice Kauft und als PDF zum Drucken öffnet sowie die Trackingnummer ausliest.

Die Trackingnummer soll jetzt ins Template Feld tracking_number geschrieben werden.
Mit $twig->addGlobal('response', $json2); habe ich versucht mir die Trackingnummer ans Template zu übergeben, das genügt aber sicher nicht, ich denke ich muss im Twig eine function aufrufen die die Response in das Template Feld schreibt.

Grüße Thomas

Newbie

Posts

Joined
Fri Aug 10, 2012 1:35 am

Post by OSWorX » Sat Dec 22, 2018 4:44 pm

Wie geschrieben, einfach im Controller in der Funktion den Wert retour an die Vorlage senden.
In der Vorlage selbst befindet sich eine einfache Funktion, welche mit Ajax den Controller aufruft und dann den erhaltenen Wert in das Feld schreibt.

Wo ist da das Problem?

Was hat das Ganze mit

Code: Select all

$twig->addGlobal('response', $json2);
zu tun?

Full Stack Web Developer :: Dedicated OpenCart Development & Support DACH Region
Contact for Custom Work / Fast Support.


User avatar
Guru Member

Posts

Joined
Mon Jan 11, 2010 10:52 pm
Location - Austria
Who is online

Users browsing this forum: No registered users and 43 guests