Appeler une fonction PHP après AJAX

Lorsqu’un utilisateur envoie le formulaire sur ma page, j’utilise AJAX pour envoyer les informations sans actualiser la page. Une fois que l’utilisateur a soumis les informations, je souhaite exécuter une fonction PHP déjà écrite qui affiche les informations. Est-ce possible ou dois-je exécuter une autre fonction ajax pour mettre à jour après

$(function () { $('add').on('submit', function (e) { $.ajax({ type: 'post', url: 'submit.php', data: $('this').serialize(), success: function () { alert('form was submitted'); } }); e.preventDefault(); updateWords(); //PHP FUNCTION }); }); 

Vous aurez besoin de lancer un autre appel AJAX en cas de succès du premier.

JavaScript ne peut pas interagir directement avec PHP et vous ne pouvez donc pas appeler une fonction PHP à partir de la fonction succès / achèvement de l’appel AJAX.

en réponse de cela.

J’ai plusieurs formulaires sur la page et probablement 5 appels ajax différents dans lesquels pas plus de 2 appels en même temps, si json est préférable, avez-vous un lien vers du matériel de lecture ou un exemple de stack supplémentaire similaire à celui-ci afin que je puisse enseigner moi-même – user934902

tout d’abord

jquery a été conçu pour les anciens navigateurs afin de prendre en charge les fonctions de base que ie6 ne prend pas en charge

L’utilisation de jQuery est utile si vous souhaitez bénéficier d’un support complet sur presque tous les navigateurs.

mais il y a aussi beaucoup de mauvais côtés:

  1. c’est un code de 81kb qui est fou (sans plugins)
  2. c’est très lent comparé aux fonctions natives.
  3. il est utilisé par ppl qui ne sait pas écrire de javascript simple.
  4. et beaucoup plus si nous commençons à parler des plugins.

Nous sums maintenant dans une ère où la plupart des utilisateurs utilisent leurs appareils mobiles et les navigateurs modernes qui prennent en charge javascript 1.7.Android, ios, safari, Internet Explorer 10, Chrome, Opera et Firefox prennent en charge javascript 1.7

http://caniuse.com/

le code ci-dessous est supporté par ces navigateurs.

c’est une fonction ajax écrite par moi, elle gère post & get

vous pouvez en savoir plus sur cette fonction ici https://stackoverflow.com/a/18309057/2450730

  function ajax(a,b,e,d,f,g,c){ c=new XMLHttpRequest; !f||(c.upload.onprogress=f); !g||(c.onprogress=g); c.onload=b; c.open(e||'get',a); c.send(d||null) } // Params: // Url,callback,method,formdata or {key:val},uploadFunc,downloadFunc,placeholder 

une simple requête get serait

 ajax('example.php',responseFunction); 

et une fonction de poste complexe serait

 ajax('example.php',responseFunction,'post',new FormData(form),uploadFunc,dlFunc); 

tu as besoin de Ça.

alors si vous avez votre formulaire

 
Name Surname Email File/Files

il suffit d’écrire une fonction comme ça

 var form=document.getElementsById('myForm'); form.onsubmit=function(e){ e.preventDefault(); ajax('submit.php',SUCCESS,'post',new FormData(this)); } 

et nous en arrivons à votre question:

créez le fichier submit.php pour vos besoins

 $_POST,'files'=>$_FILES,'info'=>$extrainfo,'errors'=>$err); echo json_encode($data); ?> 

cela retourne un tableau encodé en json à utiliser plus tard en javascript.

Maintenant, nous devons élaborer ce JSON. dans la fonction SUCCESS

 function SUCCESS(){ var data=JSON.parse(this.response); if(data.errors.length>0){ // you have some errors }else{ // no errors // display your response in a proper way. console.log(data); } } 

à l’intérieur de cette fonction, il vous suffit d’afficher en fonction des données de réponse.

data contiennent tout ce dont vous avez besoin.

voici le code entier.

copiez et collez dans un fichier txt et enregistrez-le sous le nom submit.php . J’ai testé seulement en chrome pour l’instant.

 $_POST,'files'=>$_FILES,'info'=>$extrainfo,'errors'=>$err); echo json_encode($data); }else{ ?>    upload    
Name Surname Email File/Files

Si la fonction dépend de l’appel AJAX à submit.php , alors créez un nouvel appel AJAX. Sinon, ajoutez simplement la fonction à submit.php et appelez-la à la fin du fichier.

Vous devez utiliser la fonction ajax qui effectue les informations de mise à jour pour mettre à jour la page elle-même en même temps.

Il suffit de retourner le code HTML utilisable comme le retour de ajax et de l’utiliser comme contenu HTML de la page.

Exemple: test.php

  
Enter your name :

PHP est côté serveur, javascript est côté client. vous ne pouvez pas appeler php du client si la page est déjà chargée.

donc le moyen facile est ajax

dans le submit.php append:

 echo json_encode($_POST); 

ou la

Fonction PHP que j’ai déjà écrite

… les informations dont vous avez besoin.

et dans la fonction de réussite

 success: function () { // i don't use jquery but the response contains the json ssortingng console.log('the words you wanna update:',JSON.parse(response)); // updateWords(JSON.parse(response)); } 

MODIFIER

vous n’avez pas besoin de plus d’une fonction ajax

vous dites que vous avez déjà écrit un script pour afficher les informations suivantes au client.

append ce script au submit.php

et la fonction succes vous donnera ce dont vous avez besoin comme réponse.

j’ai ajouté echo json_encode($_POST); parce que la plupart du temps, les informations de réponse / mise à jour dont vous avez besoin sont celles que vous venez de publier.