Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2775 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Bouton et appel fonction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Bouton et appel fonction

n°1244107
laurent_31
Posté le 12-11-2005 à 01:08:38  profilanswer
 

Bonsoir,
 
Je débute dans le PHP et je m'emmèle un peu les pinceaux...
En fait j'aimerais savoir si il est possible en cliquant sur un bouton, d'appeler une fonction php qui se trouve dans la même page ?
 
Pour être plus clair, je commence une page avec

Code :
  1. <? function mafonction() {
  2.         echo "ca c'est de la fonction !"; }
  3. ?>
  4. ...
  5. <form>
  6. <input type="button" value="ICI" onclick="<? mafonction() ?>">
  7. </form>


 
En fait la fonction s'exècute dès le chargement de la page ?
 
Bon si quelqu'un peut m'aiguiller sur la bonne voie ce serait sympa
 
Laurent

mood
Publicité
Posté le 12-11-2005 à 01:08:38  profilanswer
 

n°1244115
DrWatson
_@''
Posté le 12-11-2005 à 01:23:53  profilanswer
 

faut que ton form contienne ça pour rappeler la page courante : <form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">

n°1244118
laurent_31
Posté le 12-11-2005 à 01:35:52  profilanswer
 

Merci pour ton aide DrWatson.  
En fait le problème est toujours le même, quand je lance la page, la fonction s'exécute avant même que j'ai cliqué sur le bouton :(
 
voici le code exact, si tu peux me dire ce qui bloque, ca m'aiderait beaucoup :
 

Code :
  1. <body>
  2. <?
  3. require "definitions.inc.php";
  4. require "MySQL.php";
  5. function CreateDatabase($afficher=FALSE) {
  6.  $serveur=ConnectHOST(TRUE);
  7.  echo "Ca passe";
  8.  if($serveur) {
  9.   $sql = 'CREATE DATABASE '+BASE;
  10.   if (mysql_query($sql,$serveur)) {
  11.    if($afficher) echo "Database my_db created successfully\n";
  12.   }
  13.   else {
  14.    if($afficher) echo 'Error creating database: ' . mysql_error() . "\n";
  15.    exit;
  16.   }
  17.  }
  18. }
  19. ?>
  20. <form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
  21. <input type="button" value="ICI" onclick="<? CreateDatabase(TRUE) ?>">
  22. </form>
  23. </body>


 
Dès que je charge la page, j'ai le message 'Ca passe' de la fonction qui s'affiche.
Il s'affiche aussi quand je clique sur le bouton et c'est bon signe. Mais j'aimerais tellement qu'il ne s'affiche que quand je clique sur le bouton :)

n°1244119
naceroth
Posté le 12-11-2005 à 01:38:16  profilanswer
 

Bon, on va reposer les bases :
 
PHP => s'exécute sur le serveur, et sur le serveur uniquement. Ce qui veut dire qu'une fois que tu as la page devant les yeux, PHP a fini son travail et ne peut plus intervenir tant que tu ne retournes pas sur le serveur (soumission de formulaire de DrWatson) et donc tant que tu ne "recrées" pas une page.
 
onclick ou tout autre évenement du style => ne concerne que le client, et donc une technologie client uniquement, comme le javascript par exemple.

n°1244120
laurent_31
Posté le 12-11-2005 à 01:44:36  profilanswer
 

Arf, donc en clair je suis obligé de déplacer ma fonction dans un fichier php externe et de l'appeler via la soumission du formulaire ?
Si il n'y a pas d'autre solution, alors je vais procéder comme ca.
 
En tout cas merci pour vos réponses, vous êtes sympas, surtout à cette heure là ;)
 
Si jamais il y a une autre solution à la portée d'un débutant, merci de m'en faire part.
 
Laurent

n°1244122
laurent_31
Posté le 12-11-2005 à 01:47:41  profilanswer
 

Ce que je n'arrive pas à comprendre, c'est que la fonction s'exécute à l'ouverture de la page, alors qu'elle n'est que définie à ce moment là.
J'ai rajouté la ligne de DrWatson qui permet de recharger la page et ca marche ( remerci DrWatson ). Si je pouvais seulement éviter qu'elle s'exécute toute seule à l'ouverture, ce serait parfait...

n°1244123
DrWatson
_@''
Posté le 12-11-2005 à 01:49:27  profilanswer
 

moi non plus je ne comprend pas pk ta fonction s'execute au lancement de la page, une fonction doit être appelée pour cela, est ce que tu en es bien sûr ? est ce que ton "ça passe" s'affiche au premier lancement ?


Message édité par DrWatson le 12-11-2005 à 01:50:03
n°1244125
laurent_31
Posté le 12-11-2005 à 01:55:02  profilanswer
 

Vi, j'ai le message 'Ca passe' qui se colle en dessous du bouton au chargement de la page.
A mon avis la page se charge puis le code de la fonction s'exécute tout seul, sinon je pense que le message serait au dessus du bouton ?
 
Bon de toutes facons c'est pas grave, je cherche depuis la fin de la Star'Ac ;) et j'en ai marre, donc je pose ma fonction dans un fichier externe NA !
 
Merci à vous :)


Message édité par laurent_31 le 12-11-2005 à 01:55:31
n°1244128
naceroth
Posté le 12-11-2005 à 02:03:39  profilanswer
 

laurent_31 a écrit :

Ce que je n'arrive pas à comprendre, c'est que la fonction s'exécute à l'ouverture de la page, alors qu'elle n'est que définie à ce moment là.


 
Oh bon dieu, mais vous avez pris la peine de lire ce que j'ai écrit tout les deux (oui, toi aussi DrWatson) ? :)
 
PHP n'est pas un langage évenementiel, je vais essayer de simplifier le mode d'emploi (d'avance pardon aux puristes pour les erreurs) :

  • (client) tu tapes une adresse dans IE, par exemple http://www.monsite.com/index.php
  • (serveur) oh tiens, on me demande un fichier php...
  • (php) je lis le fichier index.php, chaque fois que je trouve du code que je comprend, je l'exécute. Donc, lorsque je lis <? mafonction() ?>, j'exécute mafonction() et envoit le résultat au serveur
  • (serveur) ok, php a fini son boulot, je peux envoyer la page demandée
  • (client) j'affiche la page que j'ai demandée
  • (laurent_31) j'appuye sur le bouton => retour à la ligne 2


Bref, contrairement à ce que tu penses, la fonction n'est pas définie à l'ouverture (enfin, l'affichage) de la page mais bien avant, et à moins de poser une condition sur l'exécution de la fonction, elle s'exécutera à chaque chargement de la page.

n°1244130
laurent_31
Posté le 12-11-2005 à 02:13:05  profilanswer
 

Il est gonflé PHP, il aurait pu tenir compte du onclick, naaan mais ;)
 
Merci pour ces précisions naceroth.
 

mood
Publicité
Posté le 12-11-2005 à 02:13:05  profilanswer
 

n°1244131
laurent_31
Posté le 12-11-2005 à 02:14:57  profilanswer
 

Bah oui, quelle burne, PHP ne lis qu'à partir du <?
Poufffffff ( soupir ), ça rentre ça rentre :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Bouton et appel fonction

 

Sujets relatifs
Création d'une fonction sous Excelfonction copy() de fichier
Quel est le fonction pour détecter le type variable renvoyé ? (suite)problemme d'argument dans une fonction
[Webservice/PHP] Modification d'une fonction soaprediriger vers un autre script après exécution d'une fonction
Fonction commandbuttonCréation d'une Fonction
fonction mail()Comprendre la fonction ord en pascal [Résolu]
Plus de sujets relatifs à : Bouton et appel fonction


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR