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 :

Changement de valeur variable selon condition [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut Changement de valeur variable selon condition
    Bonjour,

    Seriez-vous me dire pourquoi la variable $etat ne repasse pas à 1 au deuxième clic sur le bouton libelle ?
    Merci de votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    $etat = 1;
     
    if(isset($_POST['libelle'])) {
    	if($etat == 1) { $tri = 'ORDER BY id_test'; $sens = 'DESC'; $etat = 2; }
    	elseif($etat == 2) { $tri = 'ORDER BY id_test'; $sens = 'ASC'; $etat = 1; }
    	else { $tri = ''; $sens = ''; $etat = 1; }
    }
    echo '<th>libelle<input type="submit" name="libelle" value=".."/></th>';
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Etant donné que tu fixes la valeur de $etat à 1, ton test if{}n'a pas de sens.

  3. #3
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Ok, j'ai retiré la ligne qui mettait l'état à 1, mais le problème reste entier.

    Voici le script entier en cas ou :

    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
    if(isset($_POST['libelle'])) {
    	if($etat == 1) { $tri = 'ORDER BY id_test'; $sens = 'DESC'; $etat = 2; }
    	elseif($etat == 2) { $tri = 'ORDER BY id_test'; $sens = 'ASC'; $etat = 1; }
    	else { $tri = ''; $sens = ''; $etat = 1; }
    }
     
    echo $r1 = "SELECT
    						 id_test
    						,libelle
    						,valeur_1
    						,valeur_2
    						,resultat
    						FROM TABLE_TEST $tri $sens";
    $query = mssql_query($r1);
     
    echo '<form method="POST" action="" name="form1">';
    echo '<table border="1">';
    echo '<tr>';
    echo '<th>libelle<input type="submit" name="libelle" value=".."/></th>';
    echo '<th>valeur_1<input type="submit" name="valeur_1" value=".."/></th>';
    echo '<th>valeur_2<input type="submit" name="valeur_2" value=".."/></th>';
    echo '<th>resultat<input type="submit" name="resultat" value=".."/></th>';
    echo '</tr>';
    while($tab1 = mssql_fetch_assoc($query))
    {
    echo '<tr>';
    echo '<td>'.$tab1['libelle'].'</td>';
    echo '<td>'.$tab1['valeur_1'].'</td>';
    echo '<td>'.$tab1['valeur_2'].'</td>';
    echo '<td>'.$tab1['resultat'].'</td>';
    echo '</tr>';
    }
    echo '</table>';
    //Debug
    echo 'etat :'.$etat.'<br>';
    echo '<form>';

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    d'ou vient "etat" ?

  5. #5
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    d'ou vient "etat" ?
    De nulle part (pas top comme réponse), c'est une variable dont je pensais pouvoir me servir pour savoir si mon tableau se trouve dans le sens DESC ou ASC.
    J'aimerais me servir du même bouton pour trier mon tableau, je pense que c'est possible sans forcément passer par du Javascript.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut que tu passes la valeur par l'url ou par formulaire au rechargement de la page.

  7. #7
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Il faut que tu passes la valeur par l'url ou par formulaire au rechargement de la page.
    C'est déjà le cas, le tableau est dans un formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<form method="POST" action="" name="form1">';

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    il n'y a pas de champ "etat" dans ton formulaire.

  9. #9
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    il n'y a pas de champ "etat" dans ton formulaire.
    Le fait de mettre ceci ne suffit pas ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'etat :'.$etat.'<br>';

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    non, ce n'est que du texte, ca ne compte pas dans le formulaire.

  11. #11
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Merci pour m'avoir guidé ça fonctionne.

    J'ai effectivement ajouté un champs état dans le formulaire et j'ai un peu modifié les conditions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(isset($_POST['libelle'])) 
    {
    	if($etat == '')
    	{
    	$tri = 'ORDER BY id_test'; $sens = 'DESC'; $etat = 2; 
    	}
    	elseif($etat == 2)
    	{ 
    	$tri = 'ORDER BY id_test'; $sens = 'ASC'; $etat = '';
    	}
    }
    Par contre je trouve un peu lourd de devoir écrire le pavé ci-dessus pour chaque colonne, vois-tu un moyen d'alléger le script ? Une boucle ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2008] Changement de valeur d'une colonne selon condition
    Par jubourbon dans le forum SSIS
    Réponses: 3
    Dernier message: 08/03/2012, 18h14
  2. Requête paramétrée, variable selon conditions
    Par GoustiFruit dans le forum Bases de données
    Réponses: 11
    Dernier message: 22/01/2012, 14h09
  3. Affichage variable selon conditions
    Par Kastor45 dans le forum LabVIEW
    Réponses: 1
    Dernier message: 11/04/2008, 00h07
  4. [VB.NET]Test sur changement de valeur d'une variable
    Par shinji_rem dans le forum Windows Forms
    Réponses: 9
    Dernier message: 29/11/2006, 15h53
  5. Intercepter le changement de valeur d'une variable
    Par Captain_JS dans le forum C++Builder
    Réponses: 5
    Dernier message: 07/01/2005, 08h04

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