Partage
  • Partager sur Facebook
  • Partager sur Twitter

Envoyer une requête ajax ou une requête PHP ...

17 juillet 2019 à 18:49:40

Bonjour à tous,

je me demandais comment faire pour soit envoyer une requête ajax, soit envoyer une requête PHP.

Dans un cas, quand je compte envoyer une requête ajax, c'est parce que je n'ai pas besoin de recharger la page. Dans l'autre cas, où je compte envoyer une requête PHP, le but est donc d'appler une autre page PHP et une fois que le traitement est terminé, je compte rappeler la page originale.

Merci d'avance pour votre aide.

Bonne soirée
Thierry
  • Partager sur Facebook
  • Partager sur Twitter
17 juillet 2019 à 19:27:49

Requete XHR :

//Récupération des informations du formulaire :
var URL = '/scripts/tutu.php';
//var token = $("input[name='_token']").val(); //Pour protection CSRF

//Paramétrage de la requete XHR
var myInit = {
	method: 'POST',// ou GET
	credentials: "same-origin"
};

//Requete FETCH
fetch(URL, myInit)
.then(function(response) {
	//Si success du fetch
	if(response.ok) // Statut == 200 
	{
		response.json().then(function(r) {
			console.log(r);
		})
	}
	else
	{
		console.error("Erreur : " + response.statusText, response.status);
	}
})
.catch(function(e)
{
	//Si reject du fetch
	console.error(e);
});



et en php un simple lien avec a la fin de ton script une redirection vers la page précédente...

-
Edité par floutime 17 juillet 2019 à 19:31:21

  • Partager sur Facebook
  • Partager sur Twitter
17 juillet 2019 à 20:06:34

Bonjour Floutime,

tout d'abord, merci pour votre réponse.

En fait, mon but est d'appeler la même page PHP que ce soit dans le cadre d'un appel ajax ou d'un appel php.

En fait, dans ma page PHP que j'appelle dans les 2 cas de figure, j'ai une fonction pour tester si c'est de l'Ajax :

function isAjax()
{
    return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']);
}

Donc, je me demandais comment faire pour faire un appel ajax ou php à partir de mon script javascript ?

Merci d'avance

Bonne soirée
Thierry

  • Partager sur Facebook
  • Partager sur Twitter
17 juillet 2019 à 20:15:09

Ben soit tu appelles ton script php avec ajax, soit tu rediriges vers la page en ajax...
  • Partager sur Facebook
  • Partager sur Twitter
17 juillet 2019 à 20:16:27

Bonjour Floutime,

merci pour votre réponse rapide à mon message.

Auriez-vous un exemple pour cela ?

Merci d'avance

Bonne soirée

Thierry

  • Partager sur Facebook
  • Partager sur Twitter
18 juillet 2019 à 7:10:48

Bonjour.

Le terme requête PHP n'a aucun sens.

Ce sont des requêtes HTTP, la principale différence pour le JavaScript, c'est que l'on parle de XHR, soit XMLHttpRequest et donc d'AJAX (Asynchronous JavaScript + XML) qui permet notamment de faire une requête depuis une page en évitant de recharger celle-ci.

  • Partager sur Facebook
  • Partager sur Twitter

Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

19 juillet 2019 à 10:29:03

Bonjour à tous,

tout d'abord, je tenais à vous remercier pour vos conseils et votre aide.

En fait, je pense que je me suis mal expliqué. Maintenant, je comprends mieux ce que je veux faire. Je vais essayer de mieux m'expliquer. -:)

J'ai une page sur laquelle j'ai des articles. Par article, je peux exécuter un certain nombre d'opérations (supprimer, éditer, changer le statut, ...). Pour certaines actions, il doit simplement mettre à jour la base de données mais ce n'est pas nécessaire de recharger la page. Par contre, pour d'autres actions, le menu des actions possibles va changer ainsi que le contenu de l'article. Donc, dans ce cas-là, je serai obligé de recharger la page.

En fait, j'ai donc ma page avec tous les articles. Sur chaque article, j'ai ce bouton qui me permet d'afficher un menu déroulant avec toutes les actions possibles sur l'article.

Quand on clique sur une action, il appelle un fichier PHP qui va faire un certain nombre d'actions puis qui va soit rappeler la page avec tous les articles, soit ne pas recharger la page mais effacer l'article de la page affichant tous les articles.

Donc, dans les deux cas de figure, j'appellerai la page PHP à partir de la page affichant tous les articles. Dans cette nouvelle page PHP, je ferai les traitements nécessaires en rapport aux actions puis je testerai si c'est un appel Ajax ou pas. Si c'est un appel Ajax, je ne rechargerai pas la page. Par contre, si ce n'est pas un appel Ajax, à ce moment-là, je demanderai de recharger la page en faisant un "header("location: mapage.php");

Que pensez-vous de cette solution ?

Merci d'avance et bonne journée
Thierry

  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2019 à 19:27:51

Ça devrait le faire mais tu pourrais tout simplement ne jamais rediriger et mettre à jour le HTML de ta page via JS.

En général on recharge lorsqu'on change de page (navigation), ce qui ne semble pas être ton cas.

Bon courage !

-
Edité par floutime 20 juillet 2019 à 19:27:58

  • Partager sur Facebook
  • Partager sur Twitter