IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] exécuter fonction php dans la même page ?


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 67
    Points
    67
    Par défaut [Système] exécuter fonction php dans la même page ?
    Bonjour,

    Je voudrais savoir si il est possible d'exécuter une fonction php en cliquant sur un lien. Mon but étant de rester sur la même page après appuie sur des boutons ou des liens.

    J'ai fait des recherches à ce propos mais je bloque à un endroit.
    J'ai vue qu'on pouvez faire comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <A HREF="<?php print $url."?ref=$semaine_suiv";?>">
    Ce code marche, mais il ne marche pas dans certain cas. Par exemple, j'ai essayé d'associer cette variable à une fonction php comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    {
    $semaine_suiv= semaine();
    }
    ?>
     
     
    <?php
    function semaine()
    {
    $num_semaine=1;
    echo $num_semaine;
    }
    ?>
    Et là mauvaise surprise, j'ai un message d'erreur. J'en déduit que ce n'est pas de cette maniere qu'il faut procéder pour apeler une fonction php.

    Pouvez-vous m'aider s'il vous plait?

    Merci pour votre aide

  2. #2
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Php est un langage qui est interprété par le serveur. En clair, ca signifie que quand tu cliques sur un lien, si tu veux exectuer une fonction, il faut "donner la main" au serveur, c'est a dire recharger la page.

    Donc, ce que tu peux faire, c'est quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    if (isset($_GET['active_function']))
      echo ("J'active ma fonction ici");
    ?>
     
    <a href="mapagecourrante.php?active_function=1">Je vais activer ma fonction</a>
    Si tu veux executer du code sans recharger, c'est du javascript qu'il te faut.

    --
    Rakken

  3. #3
    Membre du Club Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 67
    Points
    67
    Par défaut
    Ok merci d'avoir répondu si vite. Je vais étudier ça.

    Merci

  4. #4
    Membre du Club Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 67
    Points
    67
    Par défaut
    Par ailleurs je ne comprend pas les limites de cette possibilité :

    ci-après un script pour avancer d'une année et inscrire la nouvelle date:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $url= $_SERVER['PHP_SELF']; 
     
    $Asuivant= mktime (0,0,0,$Mois,$Jour,$Annee+1);  // calcul l'annee suivante
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <A HREF="<?php print $url."?ref=$Asuivant";?>">  //lien vers cette fameuse variable php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
       $D=date("z",$ref)+1;
       print(date("l j F Y :\W\e\e\k=W \D\a\y=$D",$ref)); //affichage de la nouvelle date
      ?>
    Là sa marche, et pourtant mon lien est dirigé vers une variable contenue dans du php, et sans recharger ma page!
    C'est peut être un cas particulier?

    Enfin pouvez vous me dire ce qui ce passe s'il vous plait? Merci

  5. #5
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Euh, ton code, tel que tu l'a posté, il ne fait rien...

    --
    Rakken

  6. #6
    Membre du Club Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Points : 67
    Points
    67
    Par défaut
    Oui escuse moi, j'ai pas tout mis. J'ai complété mon code. J'ai édité mon précédant message.

  7. #7
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Nan, tu n'a pas compris le fonctionnement de php, alors j'vais reprendre a zero.

    Php est un langage executé du coté serveur. C'est a dire qu'avant d'afficher ta page, le code est executé completement, pour au final, générer du html.
    Une fois ta page en html généré, le php ne fait *plus rien*.

    Mets toi a la place de ton parseur php, il va lire ton .php avant de faire le moindre affichage ! Donc, il lit, il trouve le premier bloc de code, ok, il interprete et dans $ASuivant, il mets la date avec l'année + 1, c'est juste une opération en mémoire.

    On continue, second bloc de code, tu affiche un lien avec ref=$ASuivant. Dans la mesure ou il a $ASuivant en mémoire, il remplace, pas de soucis.
    A ce niveau, tu as eu du code html généré, mais on est encore du coté serveur, rien n'a été envoyé au navigateur.

    Troisième bout de code, tu affiche la date avec année + 1.
    De nouveau, tu viens de générer du html et toujours rien n'a été envoyé au navigateur.

    Maintenant, php a en mémoire du beau code html qui est assez basique, genre l'affichage d'un lien et d'une date. A ce niveau la on arrete completement le php. On envoie la chaine tel quelle au navigateur. On est désormais du coté "client". Le navigateur va donc a son tour interpreter ce que tu viens de lui envoyer, mais ici il n'y a plus de php ! On est juste en html.

    Il va donc afficher ton ptit lien et la date.

    J'espere avoir été clair.
    Que les puristes me pardonne d'avoir passé sous silence les notions de flush, mais en ayant déjà compris la distinction php=serveur / html+javascript=client c'est les trois quart du boulot de fait ^_^

    --
    Rakken

Discussions similaires

  1. formulaire+php dans la méme page
    Par belakhdarbts10 dans le forum Langage
    Réponses: 5
    Dernier message: 02/08/2013, 11h10
  2. [2.x] Exécution plusieurs requêtes dans la même page
    Par fattouch_squall dans le forum Symfony
    Réponses: 1
    Dernier message: 01/12/2011, 12h14
  3. Réponses: 5
    Dernier message: 22/05/2009, 10h48
  4. [Système] traitement de donnée dans la même page
    Par Albat_r dans le forum Langage
    Réponses: 10
    Dernier message: 07/12/2007, 15h02
  5. Réponses: 9
    Dernier message: 04/10/2007, 13h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo