Jump to content

Ajax et controller


Recommended Posts

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

à 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

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

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...