Tychoblood01 Posted October 14, 2013 Share Posted October 14, 2013 Bonjour, j'aimerais savoir si l'un d'entre vous avait déja effectué ceci : charger le contenu d'un tpl (uniquement son contenu, pas de header et de chargements CSS & JS) pour l'afficher dans une div en AJAX, sur la version 1.5+. J'ai déja effectué ce système en version 1.4 mais cela ne semble plus passer désormais. En l'occurence ce serait pour charger le fichier contact-form.tpl dans le pied de page. Mon problème est que rien n'est retourné du contenu du .tpl, uniquement des données en via JsonEncode ou des tests d'affichage. J'ai cru lire dans un autre topic qu'en activant le "mode" ajax, uniquement ce genre de données pouvait être retourné. Merci par avance de votre aide Code Js très simple $.ajax({ type: "POST", url: "contactez-nous?ajax=true", }) .done(function( msg ) { $('#'+nameEnCours).text(msg); $('#'+nameEnCours).fadeIn(); }); Controller overridé class ContactController extends ContactControllerCore { public function setMedia() { // parent::setMedia(); $this->addCSS(_THEME_CSS_DIR_.'contact-form.css'); $this->addJS(_THEME_JS_DIR_.'contact-form.js'); } /** * Assign template vars related to page content * @see FrontController::initContent() */ public function initContent() { if($this->ajax) //special variable to check if the call is ajax { echo "ajax"; $return = array( 'hasError' => true, 'messageTest' => 'Message de test' ); die(Tools::jsonEncode($return)); } else { parent::initContent(); } $this->assignOrderList(); $email = Tools::safeOutput(Tools::getValue('from', ((isset($this->context->cookie) && isset($this->context->cookie->email) && Validate::isEmail($this->context->cookie->email)) ? $this->context->cookie->email : ''))); $this->context->smarty->assign(array( 'errors' => $this->errors, 'email' => $email, 'fileupload' => Configuration::get('PS_CUSTOMER_SERVICE_FILE_UPLOAD') )); if (($id_customer_thread = (int)Tools::getValue('id_customer_thread')) && $token = Tools::getValue('token')) { $customerThread = Db::getInstance()->getRow(' SELECT cm.* FROM '._DB_PREFIX_.'customer_thread cm WHERE cm.id_customer_thread = '.(int)$id_customer_thread.' AND cm.id_shop = '.(int)$this->context->shop->id.' AND token = \''.pSQL($token).'\' '); $this->context->smarty->assign('customerThread', $customerThread); } $this->context->smarty->assign(array( 'contacts' => Contact::getContacts($this->context->language->id), 'message' => html_entity_decode(Tools::getValue('message')) )); $this->setTemplate(_PS_THEME_DIR_.'contact-form.tpl'); } } "Your controller will not display tpl because you will add 'ajax=true' for example and then your code will only deal with json output for example and not display the controller html part." Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now