Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Mots clés Nom d'utilisateur
Messages sans réponse

[Ajax] Appel d'une méthode PHP via Ajax ?

Sethpolma, le jeudi 25 janvier 2007 à 15:04:09 
 Signaler ce message aux modérateurs

Bonjour tout le monde !

J'ai un petit problème. Je dispose d'une classe PHP contenant diverses méthodes. Pour l'exemple, on va dire qu'elle contient la méthode UpdateList. J'ai aussi un script Ajax.

Je voudrais que, lorsque je clique sur un bouton par exemple, le script Ajax se lance et aille exécuter ma méthode UpdateList. Ayant cherché sur le Net, je n'ai rien trouvé. Si quelqu'un avait la solution...

J'ai bien pensé exécuter un premier script qui parserait mon fichier PHP à la recherche de la bonne partie du code, qui le recopierait dans un second fichier, qui serait alors ensuite exécuté avant d'être effacé. Mais je trouve cette méthode "un peu" lourde. :-)

Si quelqu'un a une idée...

Merci beaucoup !

Configuration: Windows Vista
Opera 9.10

1

kij_82, le jeudi 25 janvier 2007 à 15:33:38
  • +2

J'ai ta solution :)

Les objets XMLHttpRequest de Javascript : ce sont des objets que tu instancie et appelle depuis un fonction javascript, et qui permettent de faire appel, par exemple puisque c'est ton cas, à un fichier de traitement PHP, et à interpréter son retour.

Je te met un exemple ici tout simple pour que tu comprenne le principe :

Une page nommée "test.php" :


<script language="javascript">

function fonction ( ){
		
		var texte = document.getElementById("champ").value;
		
		var xhr_object = null; 
	     
	   if(window.XMLHttpRequest) // Firefox 
	      xhr_object = new XMLHttpRequest(); 
	   else if(window.ActiveXObject) // Internet Explorer 
	      xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
	   else { // XMLHttpRequest non supporté par le navigateur 
	      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
	      return; 
	   } 
	 
	   xhr_object.open("POST", "./traitement.php", true);
	     
	   xhr_object.onreadystatechange = function() { 
	      if(xhr_object.readyState == 4) {
			 //alert(xhr_object.responseText); // DEBUG MODE
			 // --- ICI le retour (c'est à dire tout ce qui est écrit dans le fichier de traitement)
			 // --- est interprété, donc il suffi d'écrire du code JS dans traitement.php pour
			 // --- qu'il soit interprété au retour.
	         eval(xhr_object.responseText);
		  }
	   } 
	 
	   xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	   // --- ICI TU PASSE TES ARGUMENTS AU SCRIPT :
	   var data = "donnee="+texte;
	   xhr_object.send(data);
	
}

</script>

<form>
<input type="text" id="champ">
<input type="button" value="enregistrer" onclick="javascript:fonction()">
</form>


et la page 'traitement.php', située au même endroit :
<?php

// --- On écrit un script JS pour qu'il soit interprété dans l'objet
// --- XHR au retour du script
echo "alert('Valeur a enregistrer dans la base : ".$_POST["donnee"]."');";
// --- Mais on peut faire toute sorte de chose,
// --- Comme mettre à jour sa base de donnée,
// --- sélectionner dans la base et retourner des résultats pour mettre
// --- à jour graphiquement une interface, et ce, 
// --- sans le moindre rechargement de page que ce soit !

?>


Voilà, bon courage pour la suite. ~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

2

Sethpolma, le jeudi 25 janvier 2007 à 16:16:27
  • +3

Merci de ta réponse. :-)

J'avais bien compris cela. Je souhaitais simplement appeller une fonction particulière dans un fichier spécifique, sans créer un fichier par fonction utilisée.

Cependant, je vais quand même créer une myriade de petits fichiers dans lesquels j'appelerai mes méthodes statiques.

Répondre à Sethpolma

3

 monsieur propre, le mercredi 31 janvier 2007 à 10:43:58
  • +1

Dans ce cas, tu peux utiliser une page php qui sera la porte d'entrée :

interprete.php

Avec un switch sur la fonction à appeler :

$fonction = $_POST['fonction'];
switch($fonction)
{
case('addition')
// ma fonction
break;
default:
break;
}

Et dans tes pages HTML ou tes fonctions javascript, tu fais un appel comme ujn lien classique :

<a href="interprete.php?fonction=additionne">mon lien</a>

ou

function go()
{
var xhr = getXhr()
xhr.open("POST","interprete.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xhr.send("fonction=additionne");
}

Répondre à monsieur propre
Authentification ldap en php via login/passw bonjour à tous, j'ai un probléme d'authentification ldap en php via login et password quelqu'un pourrait - il m'aider ? en faite je dois pouvoir me logger à un annuaire ldap en introduisant un login et un mot de pass merci de m'aider si vous pouvez www.commentcamarche.net/forum/affich-2763121-authentification-ldap-en-php-via-login-passw
Passage de variable php dans ajax (Résolu) Salut, Je fais un site perso avec de l'ajax ( http://smawn.free.fr ) et je voudrais faire passer une variable php à un autre div (charger par ajax .php) sur le click d'un appellant ma fonction ajax et page php... voila je pense que c conci... www.commentcamarche.net/forum/affich-3753091-passage-de-variable-php-dans-ajax
Appel de fonction PHP bonjour, je voudrais savoir comment glisser l'appel d'une fonction php dans du code html. exemple: je clique sur un lien et ca appelle une fonction php. merci d'avance. www.commentcamarche.net/forum/affich-34076-appel-de-fonction-php
Vérifier le format d'une date en PHPIl existe plusieurs méthodes pour verifier le format d'une date en PHP, vous pouvez par exemple découper la chaîne puis tester les valeurs de chaque élément. Plus simplement nous utiliserons les expressions régulières. Pour valider une date au... www.commentcamarche.net/faq/sujet-9883-verifier-le-format-d-une-date-en-php
Sécuriser son code PHPIndépendamment de la sécurisation du système d'exploitation du serveur, du serveur HTTP lui-même et des options de configuration de PHP (php.ini), il est important de veiller à sécuriser les données provenant des utilisateurs (via les formulaires ou... www.commentcamarche.net/faq/sujet-10462-securiser-son-code-php
Prob avec le ajax.requestBonjour, je souhaite mettre a jour une page internet en lançant une requete à ma base de donnée, sans passer par le php, mais via Ajax. Car en passant par le PHP, toute ma page est rechanger, or je souhaite actualiser uniquement mon textarea concerné.... www.commentcamarche.net/forum/affich-6807924-prob-avec-le-ajax-request
Appel script php depuis commande ShellBonjour, Je voudrais savoir s'il est possible de lancer un script php à partir d'un terminal Unix. Par avance, merci. www.commentcamarche.net/forum/affich-2296512-appel-script-php-depuis-commande-shell
Php : boite de dialogue pour imprimerBonjour, j'aimerai savoir s'il existe une méthode php (voir javascript) ki permet d'ouvrir une fenetre d'impression. Plus exactement g un tableau dans mon document ke j'aimerai imprimer lorsque l'on clique sur un bouton " imprimer ". Merci d'avance www.commentcamarche.net/forum/affich-365892-php-boite-de-dialogue-pour-imprimer
PHP - Les fonctionsLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du... www.commentcamarche.net/contents/php/phpfonc.php3
Java: Les méthodesLa notion de fonction et de méthode On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs... www.commentcamarche.net/contents/java/javafonc.php3
PHP - Les variablesConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois... www.commentcamarche.net/contents/php/phpvar.php3