Moin,
ich habe bei mir eine (E-Mail-)Adresse, die erst nach einem Klick auf einen Link bzw. einem Trigger-Element angezeigt werden soll. Da die Adresse nirgendwo angezeigt werden bzw. im Quelltext erscheinen soll, kommen keine CSS oder jQuery Lösungen in Frage.
Ich bin jetzt nicht so firm in AJAX und habe mir daher hier ein paar Lösungen rausgesucht und das etwas umgebaut.
Im Großen und Ganzen funktioniert es auch, da ich zusätzlich noch eine Mail-Funktion mit eingebaut habe, die mich informiert, sobald die E-Mail-Adresse angezeigt wurde. Diese E-Mail kommt auch an, sobald ich auf den Link bzw. Trigger klicke. Da muss also etwas ausgelöst und geladen werden.
Ich habe nun allerdings das Problem, dass mein Button nicht durch den Text mit der E-Mail-Adresse ersetzt wird.
Hier einmal mein Code:
Template für die normale Modulausgabe:
Das customcatalog_mail_ajax_content-Template:
Ich weiß auch nicht, ob der .replaceWitdh() aufruf so richtig ist. Wäre nett, wenn mir jemand weiterhelfen könnte, wo hier das Problem liegt.
Viele Grüße
Markus
ich habe bei mir eine (E-Mail-)Adresse, die erst nach einem Klick auf einen Link bzw. einem Trigger-Element angezeigt werden soll. Da die Adresse nirgendwo angezeigt werden bzw. im Quelltext erscheinen soll, kommen keine CSS oder jQuery Lösungen in Frage.
Ich bin jetzt nicht so firm in AJAX und habe mir daher hier ein paar Lösungen rausgesucht und das etwas umgebaut.
Im Großen und Ganzen funktioniert es auch, da ich zusätzlich noch eine Mail-Funktion mit eingebaut habe, die mich informiert, sobald die E-Mail-Adresse angezeigt wurde. Diese E-Mail kommt auch an, sobald ich auf den Link bzw. Trigger klicke. Da muss also etwas ausgelöst und geladen werden.
Ich habe nun allerdings das Problem, dass mein Button nicht durch den Text mit der E-Mail-Adresse ersetzt wird.
Hier einmal mein Code:
Template für die normale Modulausgabe:
Code:
<?php // the output template for the ajax content $ajx_content_template = 'customcatalog_mail_ajax_content'; // ajax listener, render requested CC if(\Input::get('customcatalog_ajax') && \Environment::get('isAjaxRequest')) { $objModule = \ModuleModel::findByPk(\Input::get('module_id')); $objCC = \CustomCatalog::findByModule($objModule); if($objCC === null) { die(); } $objCC->setLayoutTemplate($ajx_content_template); echo $objCC->render(); die(); } ?> <?php // include jquey global $objPage; if(!$objPage->hasJQuery) { $GLOBALS['TL_JAVASCRIPT'][] = '//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'; } ?> [...] <div class="ce_hyperlink" id="linkShow"><span onClick="showLink()">Link anzeigen</span></div> [...] <?php if(!$this->empty): ?> <script type='text/javascript'> /* <![CDATA[ */ function showLink() { // send request jQuery.ajax( { method : "GET", url : location.href, data : {'customcatalog_ajax':1,'table':'<?= $this->getCustomCatalog()->getTable(); ?>','module_id':<?= $this->getCustomCatalog()->getModule()->id; ?>}, // before seding beforeSend: function() { // put a loader or something here }, // success success: function(html) { $("#linkShow").replaceWith(html); } }); }; /* ]]> */ </script> <?php endif;?>
Code:
<a href="<?php echo $this->field('contactAdress')->value(); ?>" title="E-Mail schicken" target="_blank"><?php echo $this->field('contactText')->value(); ?>test</a> <?php $header = "From: Foo <foo@bar.tld>"; $content = "Es wurde ein E-Mail-Link auf der Seite ". $_SERVER['HTTP_REFERER']. " angefordert."; mail('foo@bar.de', 'Ein E-Mail-Link wurde angefordert', $content, $header);
Viele Grüße
Markus
Kommentar