Page 1 sur 1

POST et nouvelle page pour OnClick

Posté : 09 oct. 2020, 07:42
par ossy
Bonjour à tous

Je n'arrive pas ç envoyer une variable en POST. Je tourne en round depuis un moment.

J'ai une table aliment par mysql. Mon TR est comme ceci:

Code : Tout sélectionner

echo "<tr onClick=\"GetTR(this);\">
......

et la fonctionne comme ceci:

Code : Tout sélectionner

function GetTR(el){ var toto = el.cells[0].innerHTML alert("ID="+toto); $.ajax({ type: 'POST', url: 'apiary.php', data: {'apiary': toto}, }); window.location.replace("apiary.php");
}

La nouvelle page est bien appeler, mais je n'ai pas la valeur POST.
Merci d'avance pour votre aide.

++
Ossy

Re: POST et nouvelle page pour OnClick

Posté : 09 oct. 2020, 14:11
par or 1
il faut débugger avec les outils de développement de son navigateur.
y-a-t il une erreur javascript ?
l'url apiary.php est appelé en méthode post et/ou get ?

Re: POST et nouvelle page pour OnClick

Posté : 09 oct. 2020, 14:41
par @rthur
+1 pour les outils de dev du navigateur : Ctrl+Maj+i puis onglet réseau pour voir les appels

Quoi qu’il en soit, si tu utilises :

Code : Tout sélectionner

window.location.replace("apiary.php");
forcément ça te redirige via un appel GET

Juste avant tu fais un appel Ajax mais tu ne fais rien de la réponse.
Logiquement tu devrais ajouter un .done() ou un paramètre success pour traiter le retour de ton appel Ajax.
Cf la doc Jquery : https://api.jquery.com/jquery.ajax/ ou ce tuto : https://openclassrooms.com/fr/courses/1 ... /r-1569584

Re: POST et nouvelle page pour OnClick

Posté : 09 oct. 2020, 19:55
par ossy
Merci de vos réponses.

J'essai avec le code modifié, mais sans beaucoup de succès.

Code : Tout sélectionner

var toto = el.cells[0].innerHTML $.ajax({ type : 'POST', url : 'apiary.php', data : {'apiary':toto}, done: function(reponse){ window.location = reponse; } });
Je dois avoue que je ne comprend pas tout :(

Je ne sais pas non plus debugger Javascript et PHP.

Si vous avez un plus de conseil pour moi :) Merci

Ossy

Re: POST et nouvelle page pour OnClick

Posté : 09 oct. 2020, 20:57
par @rthur
window.location ça ne peut faire qu'un appel en GET .
Ne mets donc pas window.location.

Et avec ton appel Ajax normalement dans la console de ton navigateur web (Ctrl+Maj+i puis onglet réseau) tu devrais voir ton appel en POST.
Ensuite à toi de voir le traitement que tu veux faire

Re: POST et nouvelle page pour OnClick

Posté : 09 oct. 2020, 21:40
par ossy
Merci @athur

Je ne veux pas grand chose, mais je n'y arrive pas.
J'ai une table html. Quand je click sur une ligne, je lance une fonction avec onClick. Je veux récupère la valeur de la première colonne et envoyer cette valeur en POST sur une autre page.
Je le croyais simple, mais la je bute, snif

++
Ossy

Re: POST et nouvelle page pour OnClick

Posté : 10 oct. 2020, 08:48
par Spols
Pourquoi d'office en POST ?

si la quantité de donnée n'est pas énorme (l'ID d'une ligne par exemple, passer ton argument en GET sera plus simple. Notament avec window.location('page.php?param=valeur');

Re: POST et nouvelle page pour OnClick

Posté : 10 oct. 2020, 10:59
par ossy
Bonjour Spols

Oui GET c'est plus simple. Je voulais le faire en POST pour apprendre et je n'y croyais pas un instant que c'est ci complique pour ma petite tète.

Merci

Osyy