PHP image onclick qui déclenche fonction php

Fermé
noobphp - 2 mars 2011 à 18:05
 noobphp - 4 mars 2011 à 17:34
Bonjour,

Pouvez-vous me donner un exemple de code qui me permet d'avoir une image cliquable qui va faire appel à une fonction php. Cette fonction,ne doit être executé qu'à partir du moment ou l'utilisateur clique dessus.

J'ai essayé ceci
<php include("fonction.php" ?>
<form method="post" action=<?php verification($verif) ?>name="formpost"><input type="image" src="../images/verification.png" name="verif" value="test" />
</form>

Pouvez-vous m'aider SVP

Cordialement..
A voir également:

7 réponses

Ce n'est pas faisable, le php est executé coté serveur et la ce que tu essayes de faire est côté client.

Mais ce que t'essayes de faire ce fais en javascript.

Mais il y a une solution...Utiliser ajax ^^
0
C'est facile à faire en javascript. Je n'ai aucune notion de ce langage.
Peut-être que si j'utilise du php orienté objet je pourrais faire ce que je souhaite?
0
Utilisateur anonyme
3 mars 2011 à 15:24
oui effectivement il faut un langage client, mais ça dépend de ce que tu veux faire.
déjà c'est quoi comme fonction php? C'est quoi le but de cette fonction ?
veux tu rester dans la même page ?
Alors je te propose Ajax au lieu de javascript.
Soit plus precis!


très souvent c'est la question qui est plus difficile à comprendre que la problème
0
Bonjour!

Ajax c'est du javascript... ;)

Voici un exemple pour ton cas:


/www
/dossierTest
|_index.html
|_fonction.php

index.html

<html>
<head>
	<script type="text/javascript">
		function appelPHP(){
			var xhr = createXMLHttpRequest();
			alert(xhr);
			xhr.open('GET', 'fonction.php', true);
			xhr.onreadystatechange = function (aEvt) {
				if (xhr.readyState == 4) {
					if(xhr.status == 200){
						document.getElementById('resultatAppel').innerHTML = xhr.responseText;
					}else{
						dump("Error loading page\n");
					}
				}
			}
			xhr.send(null);
		}
			
		function createXMLHttpRequest() {
			var xmlhttp = false;
			if (window.XMLHttpRequest) {
				xmlhttp = new XMLHttpRequest();
			} else if(window.ActiveXObject) {
				try {
					xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
				} catch (e) {
					try {
						xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
					} catch (e) {
					xmlhttp = false;
					}
				}
			}
		return xmlhttp;
		}
	</script>
</head>
<body>
	<input type="button" onclick="appelPHP()"/>
	<div id="resultatAppel">&nbsp;</div>
</body>
</html>


fonction.php
<?php
echo 'Reponse de fonction.php!';
?>


++
0
Utilisateur anonyme
3 mars 2011 à 15:57
non c'est du javascript + xml, je ne considère pas ça comme du javascript, car le javascript ne peut lire dans un fichier.
Ça devrait marcher!
0
Merci pour ton code maniaxx mais je n'arrive pas à le faire fonctionner :s
De plus ce n'est pas un bouton dont j'ai besoin mais une image onclick
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
La fonction va faire appel à un fichier qui contiendra la liste de toutes les fonctions que je vais développer.
Chaque sous fonction va faire des appels SSH vers un serveur.
A la fin de toutes les actions, la page sera actualisé avec les nouvelles valeurs.

En image ca donne

index.PHP veut exécuter la fonction verif() --> le fichier fonction.php cherche la fonction qui s'appel verif et va donc exécuter les sous fonction comme --> testcpu() puis testram() puis testdd() puis majbbd()... --> à la fin de toutes les fonctions un refresh est envoyé à la page avec les nouvelles info

Pour le moment le seul moyen que j'ai trouvé pour contourner le problème c'est d'utiliser des if (isset($_POST['verif'])){ testcpu(), testram()... }
Mais mon fichier va comporter beaucoup trop de if car je vais sans doute avoir plus de 100 if.

C'est pour cela que je cherche à faire appel directement à une fonction.

Merci pour votre aide
0
dans tous les cas tu devras effectuer des tests avant d'appeller tes fonctions, non ?

Je vois pas ce que ça change de l'appeler directement tes fonctions (chose impossible en Ajax) ou de passer par une page qui les appelle.... Dans tous les cas tu aura tes "100" ifs non ?
0
Je voulais faire les vérifications directement dans les fonctions et non dans les if.
Cela permet au CPU de lire directement la fonction sans à lire tous les if, et ensuite une fois dans la fonction, il vérifie si tous les paramètres sont correcte ou si'ils doit sortir avecu n message d'erreur.

Je sais que je suis obliger de passer par une page pour appeler mes fonctions, mais je veux éviter que dans cette page il n'y ai que des if justement.

C'est la 1er fois que je développe en PHP (que je développe quelque chose même) donc je ne connais pas les "bonnes coutumes" et on m'a toujours dis d'éviter d'avoir trop de if pour gagner en temps processeur. De plus la page web sera visité pas plusieurs personnes en même temps donc autant en optimiser l'exécutions
0