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 :

Modifier variable après un clic


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut Modifier variable après un clic
    Bonjour

    Dans ce code j'affiche la semaine avec la variable $semaine obtenue par :
    J'ai placé deux liens pour obtenir la semaine d'avant et d'après, voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <table>
    <tr>
    <td>
    <a href="#" onclick="<?php $newSemaine=$semaine-1  ?>"><img id="SemMoins" src="images/previous.png" /></a>
    </td>
    <td style="padding-left:10px; padding-right:10px;">
    <?php
    $laSemaine= "Semaine $semaine";
    $_SESSION['Semaine'] = $semaine; 
    echo "<h3>".$laSemaine."</h3>";
    ?>
    </td>
    <td>
    <a href="#" onclick="<?php $newSemaine=$semaine+1 ?>"><img id="SemPlus" src="images/next.png" /></a>
    </td>
    </tr>
    </table>
    Est-ce bien comme cela qu'il faut procéder ?
    Par contre je ne vois pas comment faire pour pour modifier la valeur de ma variable placée dans le <h3> après le clic d'un lien
    Pouvez-vous me conseiller
    Merci

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    PHP c'est coté serveur, regarde le code source de ta page et tu comprendras

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    Ha oui c'est comme cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="<?php echo $newSemaine=$semaine-1  ?>

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par Vanessa48 Voir le message
    Ha oui c'est comme cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="<?php echo $newSemaine=$semaine-1  ?>
    ça change rien, ton PHP c'est coté serveur ce que tu cherches a faire est coté client ...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    Désolée, mais je ne vois pas comment faire
    Je ne suis pas une fer de lance en Php

  6. #6
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Tu ne comprends pas l'implication en fait.

    PHP est un langage serveur, lorsque le navigateur affiche la page internet, le code a déjà été exécuté et résolu.
    Ce que PHP envoi au navigateur c'est le code résolu, à savoir un contenu FIXE.

    Pour avoir un contenu variant il faut renvoyer des requêtes au serveur pour lui demander de recalculer la réponse. Donc soit avec un changement de page (formulaire, lien) soit avec une requête asynchrone (Ajax en Javascript).

    Je te conseillerai dans un premier temps de consulter des cours sur le PHP et la transmission de données.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    J'ai consultée la Doc et si j'ai bien compris
    pour récupérer la variable je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $_GET['$newSemaine']; ?>
    Mais je ne comprends pas ce que je dois écrire dans le onclick de mon lien car le lien et le <h3> a actualiser sont sur la meme page

  8. #8
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Pourquoi utiliser un onclick pour changer de page ?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="maPage.php?variable=<?php echo $variable; ?>">Ma page</a>

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Apparemment, tu ne veux pas comprendre que PHP est exécuté coté serveur. Cela signifie que son rôle est de générer une page HTML. Une fois cette page générée, elle est envoyée au navigateur et PHP n'est plus accessible.
    Arrivée au navigateur, le code HTML est interprétée et affichée mais elle ne communique plus avec le serveur.
    Ce que tu demandes est donc impossible à réaliser : une fois la page affichée, le contexte PHP qui l'a générée n'existe plus !
    Si tu veux envoyer des informations au serveur, il faut appeler une nouvelle page (par exemple dans un lien ou via un formulaire) en passant des paramètres dans l'URL (pour un lien ou un formulaire en méthode GET) ou dans le corps de la requête HTTP (méthode POST). Si les paramètres d'un lien doivent être ajoutés dynamiquement, il faut le faire en JavaScript.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    Donc dans ma page principale entre les liens, je remplace mon <h3> par une <div> dans laquelle je fais un include de la page où se trouvera uniquement la variable qui se trouvait dans le <h3>

    C'est possible ca ?

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 127
    Points
    127
    Par défaut
    Bonjour,

    vu ta problématique, je pense que AJAX pourra résoudre ton problème.
    La procédure :
    1 - Le onclick va appeler une fonction javascript avec comme paramètre ton numéro de semaine courante et l'opération (1 ou -1).
    2- la fonction va faire un appel ajax avec les mêmes paramètres sur un autre fichier php.
    3 - ce fichier va faire l'opération de la semaine -1 et semaine + 1 puis les renvoyer.
    4 - il te suffira de renvoyer ces retours dans les bons champs.

    Cette solution est utile je pense car il n'y a pas de problèmes de calculs de semaine (que se passe-t-il à 52 semaines + 1 ou à 1 semaine - 1 ?).

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    Merci pour ton aide

    Je vais essayer car je ne connais pas bien l'Ajax, étant habituée à développer en aspx

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    J'ai fait le premier exemple donné sur le lien http://siddh.developpez.com/articles/ajax/

    Il se compose de deux pages : index.html et ajax.php

    Est-il possible de faire cela sur une seule page ?
    Est-ce code qu'il faut modifier pour cela ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function go(){
    	var xhr = getXhr()
    	// On défini ce qu'on va faire quand on aura la réponse
            xhr.onreadystatechange = function(){
    	// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    	if(xhr.readyState == 4 && xhr.status == 200){
    	alert(xhr.responseText);
    	}
    	}
    	xhr.open("GET","ajax.php",true);
    	xhr.send(null);
    	}
    Désolée d'insister, mais pour moi l'Ajax c'est nouveau

  14. #14
    Membre à l'essai
    Profil pro
    Développeuse Web
    Inscrit en
    Octobre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse Web

    Informations forums :
    Inscription : Octobre 2011
    Messages : 23
    Points : 24
    Points
    24
    Par défaut
    T'es pas obligée de faire ça en AJAX. Tout dépend... Clairement, faut que tu comprennes comment marche PHP à la base.

    Bref, il y a + simple. Si tu t'en fiches que la page soit rechargée, tu peux tout simplement recharger la même page avec tes liens en te faisant passer une variable +1 ou -1 que PHP utilisera pour générer à nouveau la page.

    Par ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="tapage.php?semaine=-1"><img id="SemMoins" src="images/previous.png" /></a>
    <a href="tapage.php?semaine=1"><img id="SemPlus" src="images/next.png" /></a>
    Et en haut de ta page tu recupère ta variable URL (ton -1 ou ton 1) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ChangeSemaine  = $_GET['semaine'];
    Et c'est seulement là que tu peux faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $newSemaine=$semaine+$ChangeSemaine;
    Est-ce que j'ai été assez claire ?
    A+

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    Merci pour ton aide, mais j'ai un beug sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ChangeSemaine  = $_GET['semaine'];
    Avec ce message : Undefined index
    Cette ligne de code, je l'ai bien mise au début de ma page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    session_start();
    $ChangeSemaine  = $_GET['semaine'];
    include ('connect.php');
    ?>

  16. #16
    Membre à l'essai
    Profil pro
    Développeuse Web
    Inscrit en
    Octobre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse Web

    Informations forums :
    Inscription : Octobre 2011
    Messages : 23
    Points : 24
    Points
    24
    Par défaut
    tant que t'as pas cliqué sur l'un ou l'autre de te liens, ton $_GET est vide puisque t'as pas encore envoyé la variable. T'as pas essayé de cliquer dessus ?

    D'ailleurs sont où tes liens là-dedans ?

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 312
    Points : 74
    Points
    74
    Par défaut
    Si j'ai essayé de cliquer sur mes liens
    Je te donne mon code complet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?php
    session_start();
    $ChangeSemaine  = $_GET['semaine'];
    include ('connect.php');
    ?>
    <!DOCTYPE html>
    <html>
    <head>
     
    </head>
    <body>
    <script type='text/JavaScript'>
    </script>
    <div data-role="page" data-theme="b">
    	<div data-role="content" data-theme="b" style="text-align:center;">
    		<div id="InfoDate" style="text-align:center; background-color:#333333; color:#FFFFFF; border-color: 2px solid #333333;">
    				<?php 
    				$jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
    				$mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
     				$dateDuJour = $jour[date("w")]." ".date("d")." ".$mois[date("n")]." ".date("Y");
     				echo "Nous sommes le ". $dateDuJour;
    				$semaine = date("W");
    				$year=date("Y");
    				echo " et la semaine ". $semaine;
    				$laSemaine= "Semaine $semaine";
    				?>
    			</div><!-- InfoDate -->
    		<div id=TitrePlanning style="text-align:center; background-color:#EAEAEA; color:Red;">
    			<table>
    				<tr>
    					<td>
    						<a href="essai_planning.php?semaine=-1"><img id="SemMoins" src="images/previous.png" /></a>
    					</td>
    					<td style="padding-left:10px; padding-right:10px;">
    					<?php
    					//$semaine=42;
    					$laSemaine= "Semaine $semaine";
    					$_SESSION['Semaine'] = $semaine; 
    					echo "<h3>".$laSemaine."</h3>";
    					?>
    					</td>
    					<td>
    						<a href="essai_planning.php?semaine=+1"><img id="SemMoins" src="images/next.png" /></a>
    					</td>
    				</tr>
    			</table>
    			</div><!-- TitrePlanning -->
    	</div><!-- Fin Content -->
    	</div><!-- Fin Page -->
    </body>
    </html>

  18. #18
    Membre à l'essai
    Profil pro
    Développeuse Web
    Inscrit en
    Octobre 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse Web

    Informations forums :
    Inscription : Octobre 2011
    Messages : 23
    Points : 24
    Points
    24
    Par défaut
    Ok, bon alors déjà t'avais pas utilisée ta variable URL mais bon du coup j'ai vu ton code et là ça marche pour moi comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php 
    				$jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
    				$mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
     				$dateDuJour = $jour[date("w")]." ".date("d")." ".$mois[date("n")]." ".date("Y");
     				echo "Nous sommes le ". $dateDuJour;
    				if (!isset($ChangeSemaine)) {$semaine = date("W");} else {$semaine = $ChangeSemaine;}
    				$next_semaine = $semaine+1;
    				$prev_semaine = $semaine-1;
    				$year=date("Y");
    				echo " et la semaine ". $semaine;
    				$laSemaine= "Semaine $semaine";
    				?>
    Et tes liens doivent être comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="essai_planning.php?semaine=<?echo$prev_semaine;?>">...</a>
    <a href="essai_planning.php?semaine=<?echo$next_semaine;?>">...</a>
    Ceci dit y'a d'autres trucs bizarres. Je suis pas une pro mais il me semble qu'attribuer une variable à une superglobale comme tu fais ça va pas. À vérifier toutefois parce que les sessions je ne connais pas bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['Semaine'] = $semaine;

Discussions similaires

  1. [AC-2003] Affectation variable après clic sur un bouton.
    Par maxime350 dans le forum IHM
    Réponses: 7
    Dernier message: 20/02/2010, 17h37
  2. Réponses: 2
    Dernier message: 23/10/2005, 18h05
  3. Réponses: 5
    Dernier message: 25/07/2005, 14h03
  4. [D6] Modifier variable environnement système !?
    Par Lung dans le forum API, COM et SDKs
    Réponses: 32
    Dernier message: 19/05/2005, 19h43
  5. Comment ne pas rejouer une animation après un clic ?
    Par mmmmhhh dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 04/09/2002, 16h11

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