Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/06/2008, 16h54   #1
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 143
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 143
Points : 32
Points : 32
Par défaut [PHP-JS] appel fonction par bouton

Bonjour,
Je sais qu'en javascript, on appelle une fonction par un bouton avec ce script :

Code :
1
2
 
 <input type = "button" value = "Ok" OnClick="correction()">
Peut-on faire la même chose pour appeler une fonction PHP ? J'ai essayé le code suivant mais ça ne marche pas :

Code :
1
2
3
4
5
6
7
8
9
10
 
<?php
	function correction()
	{
	echo .....
             }
?>
<form method = "POST">
<input type = "button" value = "Ok" OnClick="<?php correction(); ?>">
</form>
Merci de votre aide.
dimi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 17h02   #2
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
Le HTML et le javascript sont interprétés par le client. C'est pour ça que l'on peut appeler une fonction javascript dans un bouton HTML.

Le php, lui, est interprété par le serveur. Le client ne connaissant pas le php, tu ne peux pas l'exécuter à partir d'un bouton HTML.

Par contre, tu peux exécuter du code javascript qui envoie une requête sur le serveur web, qui exécute du code php.

Mais pour savoir ce qui pourrait te convenir, il faut que tu nous expliques ce que tu veux faire...
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 17h06   #3
Membre confirmé
 
Inscription : mai 2006
Messages : 196
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 196
Points : 278
Points : 278
*Grillé*

En fait tu veut exécuter des scripts PHP lorsqu'on clic sur un bouton ? Le PHP doit-il retourner ou non des valeurs ? Dans tous les cas la c'est de l'AJAX qu'il faudrait utiliser ou convertir tes fonction PHP en JS si c'est possible (généralement non ).
meliandah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 18h33   #4
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 143
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 143
Points : 32
Points : 32
Je vous remercie de vos réponses rapides.

>> Meliandah

Je souhaite écrire en PHP plutôt qu'en Javascript parce que mon script fait appel à des fichiers .txt pour y chercher des données. Le Javascript permet-il d'accéder à des fichiers texte en lecture ? Si oui, mon problème d'utiliser un bouton pour appeler une fonction serait résolu.

>> Eusèbe

Voici ce que je veux faire :
1. l'utilisateur entre une réponse à une question
2. l'utilisateur clique sur un bouton "ok" qui lance une fonction de vérification de la validité de la réponse
2. la fonction en question vérifie la validité de la réponse en la comparant aux données d'un fichier texte.

Si j'inclus le code de cette fonction à la suite du formulaire, le programme interprète aussitôt cette fonction avant que l'utilisateur ait entré la réponse. Afin d'obliger le programme à attendre l'entrée de l'utilisateur pour vérifier la validité de la réponse, j'ai eu l'idée de créer une fonction qui ne sera envoyée qu'après un clic sur un bouton.

Merci encore de vos idées.
dimi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 20h16   #5
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 143
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 143
Points : 32
Points : 32
>>> Eusèbe
Vous me suggérez :

Par contre, tu peux exécuter du code javascript qui envoie une requête sur le serveur web, qui exécute du code php.

Cela se fait comment ? Merci

>>> Meliandah
Vous me demandez :

Le PHP doit-il retourner ou non des valeurs ?

Non, pas de valeur en retour, mais un message pour l'utilisateur du type :
"Erreur ! réssayez encore..."
dimi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 23h50   #6
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Ce que tu decris est un formulaire classique :
L'utilisateur remplit des champs puis valide le formulaire.
Le champs du formulaire sont envoyés a une page PHP qui les traite.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 07h48   #7
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 143
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 143
Points : 32
Points : 32
Merci de votre réponse.
Je vais donc procéder comme vous le dites du fait que ce que je souhaitais n'est pas possible.
dimi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 10h12   #8
Membre confirmé
 
Inscription : mai 2006
Messages : 196
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 196
Points : 278
Points : 278
Tu peut faire un formulaire simple qui traitera la réponse et redirigera l'utilisateur non ? :o Est-ce que tu es obligé de rester sur la même page ou tu peut rafraichir et/ou partir ?
meliandah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 12h17   #9
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 143
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 143
Points : 32
Points : 32
Du fait qu'il s'agit d'un exercice, l'utilisateur doit revenir sur le programme afin de poursuivre les questions. Comment se fait le retour sur la page ? Est-il automatique ou faut-il programmer une ligne de code à cet effet ?

Merci beaucoup pour l'attention que vous portez à mes questions.
dimi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 19h39   #10
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 143
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 143
Points : 32
Points : 32
J'ai testé des tas de choses mais rien n'est satisfaisant. Le retour à la page d'exercices ne se fait pas automatiquement. Il faut réouvrir le fichier texte de données sur la page traitant l'information du formulaire. De ce fait les lignes "question" et "réponse" ne sont plus synchro...

L'exercice proposé à l'utilisateur comporte une boucle affichant l'une après l'autre chaque ligne du fichier texte sur lequel sont enregistrés questions et réponses. L'idéal serait de contrôler la validité de la réponse utilisateur sur la page d'exercice elle-même, puis de poursuivre la boucle jusqu'à la fin du fichier texte.

Est-ce que cela est impossible (auquel cas j'abandonne) ?

Je vous remercie de m'éclairer.
dimi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 20h29   #11
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
Non ce n'est pas impossible. Ci-dessous une proposition de méthode pour le réaliser.

Tout d'abord, il faut que ton formulaire renvoie sur la même page (par exemple exercice.php).

Pour simplifier le traitement, tu peux envoyer les réponses de ton formulaire au serveur dans un tableau reponses (pour ça, la propriété name des balises input des réponses doit être de la forme 'reponses[]').

Ensuite, dans ta page exercice.php, tu testes la variable $_POST['reponse'] : si la variable n'existe pas, c'est le premier accès, et tu n'affiches que la première question. Si elle existe, tu la récupères. C'est un tableau qui contient à l'indice 0 la réponse à la question 1, à l'indice 1 la réponse à la question 2, etc...

Tu peux donc tester les réponses et afficher le nombre voulu de questions dans ton formulaire (en mettant les réponses validées dans des balises input non modifiables).

Est-ce que c'est clair, et est-ce bien ce que tu veux faire ?
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 07h59   #12
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 143
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 143
Points : 32
Points : 32
Je vous remercie pour votre longue réponse. C'est bien ce que je voudrais faire mais là, je suis dépassé. Je vais me contenter du javascript et inclure les données dans le code de la page.
Merci encore pour le temps que vous avez consacré à me répondre.
dimi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 10h21   #13
Membre confirmé
 
Inscription : mai 2006
Messages : 196
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 196
Points : 278
Points : 278
Sinon oui tu peut tout traiter en javascript en mettant tes données texte dans des variables JS, tu peut les écrire avec PHP (il les écrira au tout debut et donc tu ne peut pas les changer en cour de route), sinon tu regarde du côté de l'ajax pour pouvoir executer du PHP qui te renverra les données des fichiers texte sans que sa ne rafraichisse.
meliandah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 12h19   #14
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 143
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 143
Points : 32
Points : 32
Je ne connais pas du tout l'Ajax. Ce langage est-il supporté par tous les hébergeurs ? Du moins par tous les hébergeurs qui acceptent le PHP ? Ce langage est-il interprété côté serveur ou côté client ?
merci

13.05

Je suis allé visiter des sites présentant Ajax... C'est peut-être bien la solution à mon problème... Je vais m'atteler à comprendre tout ça... Merci encore pour cette piste intéressante.
dimi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 19h30   #15
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
Bonjour, l'ajax n'est pas un langage, mais une méthode d'utilisation de divers éléments (javascript et XML principalement). Sauf erreur (la flemme de (re)chercher) ça signifie Asynchronous Javascript And Xml. le javascript est un langage interprété par le client, donc ça fonctionne quel que soit l'hébergeur... mais pas forcément quel que soit le navigateur . Pour le XML, c'est simplement le format utilisé en ajax pour l'échange de données entre le client et le serveur. Le XML peut facilement être remplacé par d'autres 'systèmes' de représentation de données, comme le JSON par exemple.

Côté serveur, il faut utiliser un langage qui peut représenter les données dans le format souhaité (XML, JSON, ou autre), et le php suffit largement
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2008, 09h53   #16
Membre confirmé
 
Inscription : mai 2006
Messages : 196
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 196
Points : 278
Points : 278
Oui l'AJAX est un concept de programmation, en fait tu va simplement utiliser 1 objet JavaScript prévu à cet effet ( XhttpXmlRequest ou quelque chose du genre), donc en fait c'est du javascript. L'objet va demander une page au serveur mais au lieu que ce soit ton navigateur qui reçoive la réponse c'est cet objet JavaScript, cela te permet donc de modifier ton site dynamiquement sans aucun rechargement de page.
Pour utiliser l'AJAX très facilement je te conseil fortement d'utiliser la librarie JQuery (librarie JavaScript)
meliandah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2008, 19h30   #17
Nouveau Membre du Club
 
Inscription : mars 2008
Messages : 143
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 143
Points : 32
Points : 32
Merci de partager vos connaissances.
dimi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h41.


 
 
 
 
Partenaires

Hébergement Web