Excuter une méthode dans une classe PHP avec AJAX

Eléphant du PHP | 52 Messages

29 nov. 2007, 18:44

Bonjour tout le monde,
En faite je sais pas si ma question a été déjà posé, si vous pouvez m'en excusez pour ça.
Je travaille avec PHP5, et je veux exécuter une méthode dans une classe php avec AJAX, sans est-ce que c'est possible?
<?php

class MyClass {

	public function MyClass() {}
	
	public function myMethod($param) {
		 //traitement contenant une connection à une BD par exemple
		return $result ;
	}
}
?>

<html>
<script language="javascript">
//créer l'objet XMLHttpRequest
function sendValue(val) {
//....
}
</script>
<body>
<input type="text" name="txt" >
<input type="button" value="send" onClick="sendValue(txt.value);">
</body>
</html>
C'est le code de la fonction sendValue() que je vois pas comment l'écrire.


Merci pour votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

30 nov. 2007, 11:42

Pas sur d'avoir bien compris ta question, mais d'une manière générale, php s'exécute sur le serveur et va générer la page, quant à Javascript, il s'exécute côté client une fois la page chargée et ne peut nullement interragir avec le code php que la page pourrait contenir.

Ajax te permet, au travers de javascript, d'aller exécuter un script php sur ton serveur et d'en retourner le résultat que celui-ci affiche à l'écran.

Il te faut donc un script php spécifique que tu vas pouvoir aller interroger à l'aide d'ajax en lui spécifiant les paramètres qui vont bien. Ton script php affichera alors une réponse qu'ajax pourra récupérer et que tu pourras ensuite traiter dans ta page avec javascript :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 52 Messages

30 nov. 2007, 17:32

Ah oui oui absoluement, je sais tout cela, par contre c'est vrai j'ai mal posé la question.
En faite je veux éviter de faire un fichier php chaque fois que je veux appeler une méthode de ma classe genre :
"send_value.php" contenant
<?php
$cls = new MyClass() ;

echo $cls->myMethod($_POST['val']);
?>
et puis dans la fonction sendValue(val)

Code : Tout sélectionner

function sendValue(val) { var myUrl = "http://localhost/send_value.php" //et puis un traitement pour afficher le résultat }
Je me suis dis peut être qu'il y une autre méthode qui m'a échappé.

Merci pour votre aide.