bathie Posted November 10, 2016 Share Posted November 10, 2016 Bonjour je souhaiterai envoyé une variable en ajax depuis un fichier tpl mais la variable doit etre envoyé dans le fichier controllers/admin/AdminOrdersControllers.php - dans ce fichier y a une fonction : public function ajaxProcessEditProductOnOrder() { //je dois récupérer ma variable ajax ici } - dans mon tpl j'ai : <script type="text/javascript"> $(".send_change_notif").click(function() { var envoi = 'ok'; var admin_order_tab_link = "{$link->getAdminLink('AdminOrders')|addslashes}"; $.ajax({ type: "POST", url: admin_order_tab_link, data: { test: envoi }, success: function(retour){ alert('notification envoyée au client'); } }); return false; }); </script> quand l'action du click est faite j'ai un retour de mon alert mais dans le adminorderscontroller.php j'arrive pas à récupérer ma variable ajax Pour info dans le php j'ai utilisé Tools::getValue('test'); quelqu'un aurait une idée de ce qui manque dans mon code pour l'envoie ? et pour la récupération dans le php ? Merci Link to comment Share on other sites More sharing options...
coeos.pro Posted November 10, 2016 Share Posted November 10, 2016 ta fonction ajaxProcessEditProductOnOrder fini bien par un return $retour; ou quelque chose comme ça ? Link to comment Share on other sites More sharing options...
bathie Posted November 10, 2016 Author Share Posted November 10, 2016 à la fin j'ai ça : die(Tools::jsonEncode(array( 'result' => $res, 'view' => $view, 'can_edit' => $this->tabAccess['add'], 'invoices_collection' => $invoice_collection, 'order' => $order, 'invoices' => $invoice_array, 'documents_html' => $this->createTemplate('_documents.tpl')->fetch(), 'shipping_html' => $this->createTemplate('_shipping.tpl')->fetch(), 'customized_product' => is_array(Tools::getValue('product_quantity')) ))); mais y a pas de return nul part. Link to comment Share on other sites More sharing options...
coeos.pro Posted November 11, 2016 Share Posted November 11, 2016 quand l'action du click est faite j'ai un retour de mon alert mais dans le adminorderscontroller.php j'arrive pas à récupérer ma variable ajax Pour info dans le php j'ai utilisé Tools::getValue('test'); ok, mais "test", dans le php, tu en fais quoi ? comment constates-tu que tu n'arrive pas à récuperer cette variable ? Link to comment Share on other sites More sharing options...
bathie Posted November 11, 2016 Author Share Posted November 11, 2016 dans le php j'ai if (Tools::getValue('test') { //ici y a une notification qui s'envoie } et vue que je reçois pas cette notification ça veut dire ma variable n'est pas récupérer. Link to comment Share on other sites More sharing options...
coeos.pro Posted November 11, 2016 Share Posted November 11, 2016 c'est quoi une notification ? un mail ? Link to comment Share on other sites More sharing options...
bathie Posted November 11, 2016 Author Share Posted November 11, 2016 oui c'est un mail envoyé par cette méthode : $this->sendChangedNotification($order); Link to comment Share on other sites More sharing options...
coeos.pro Posted November 11, 2016 Share Posted November 11, 2016 ok, au début de la fonction ajaxProcessEditProductOnOrder met return 'ajaxProcessEditProductOnOrder OK'; et dans le js change ton alert par alert(retour); Link to comment Share on other sites More sharing options...
bathie Posted November 11, 2016 Author Share Posted November 11, 2016 je viens de tester mon alert(retour) me renvoie un code html contenant les élément de mon header Link to comment Share on other sites More sharing options...
coeos.pro Posted November 11, 2016 Share Posted November 11, 2016 normalement l'alert devrait afficher : ajaxProcessEditProductOnOrder OK quand tu regardes le code de ta page, que donnes la ligne : var admin_order_tab_link = "{$link->getAdminLink('AdminOrders')|addslashes}"; Link to comment Share on other sites More sharing options...
coeos.pro Posted November 11, 2016 Share Posted November 11, 2016 essaye avec "test": envoi au lieu de test: envoi Link to comment Share on other sites More sharing options...
bathie Posted November 11, 2016 Author Share Posted November 11, 2016 dans ma variable admin_order_tab_link j'ai : index.php?controller=AdminOrders&id_order=39&vieworder&token=50ff9e21936d56cf3546e0d54f4c5900 pour info le bouton que j'ai ajouté se trouve dans commande et quand par exemple je modifie le prix d'une commande en bo un mail et envoyé a chaque modif le but de ce bouton c'est de déclencher l'envoi du mail que quand je clic dessus et non à chaque modif de prix qui déclenche automatiquement l'envoi du mail au client en faisant avec "test" c'est pareil ça fonctionne pas Link to comment Share on other sites More sharing options...
bathie Posted November 11, 2016 Author Share Posted November 11, 2016 j'ai finalement fait un truc comme ça pour pouvoir faire fonctionner mon Tools::getValue('envoi') : <script type="text/javascript"> $(".send_change_notif").click(function() { var envoi = 'ok'; var url = $('form.container-command-top-spacing').attr("action"); var admin_order_tab_link = "{$link->getAdminLink('AdminOrders')|addslashes}"; query = 'ajax=1&envoi='+envoi+'&action=editProductOnOrder&'; $.ajax({ type: 'POST', url: admin_order_tab_link, cache: false, dataType: 'json', data : query, success: function(retour){ alert(retour); } }); return false; }); </script> dans mon controller quand je fais un die (Tools::jsonEncode($envoi)); une fois mon bouton cliquer il me retourne bien "ok" mais parce contre ma condition ne fonctionne pas je reçois pas de mail alors que normalement ça variable $envoi existe vu que je l'ai déclarer au début if ($envoi) { $this->sendChangedNotification($order); } t'as une idée du pourquoi ? Link to comment Share on other sites More sharing options...
Thorfy Posted November 14, 2016 Share Posted November 14, 2016 dans ce cas je serais tenté de te dire de vérifier ta fonction sendChangedNotification ou ta variable $order 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