boucle if ne fonctionne pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : boucle if ne fonctionne pas

Re: boucle if ne fonctionne pas

par mirlipi » 06 déc. 2011, 01:33

Merci beaucoup, même si je n'ai pas tout compris au code je l'ai mis en place (un petit peu corrigé la syntaxe :wink: ) et cela fonctionne !!

Merci à tous les contributeurs et au temps passé sur mon problème, c'est la première fois que je poste, j'espère ne pas trop avoir besoin de posté.

Re: boucle if ne fonctionne pas

par sirakawa » 06 déc. 2011, 00:41

une méthode bête:

print "==>$execode<====>$donneeslistexe['exe_id']<==";
Une suggestion pour éviter cet enchevêtrement de <?php..; ?>
c'est de :
$le_select = <select name='listexercice' id='listexercice'>";
while ($donneeslistexe = $reponselistexe->fetch())
{
   $exe_id = $donneeslistexe['exe_id'] ;
    $exe_nom = $donneeslistexe['exe_nom'];
   print "==>$execode<====>$exe_id<=="; // les <==> IMPORTENT
   $selected = ($exe_id == $execode) ? "selected= 'selected'": "";
    $le_select .= <option value='$exe_id'  $selected>$exe_nom </option>";
}
$le_select .= "</select>";

Re: boucle if ne fonctionne pas

par mirlipi » 06 déc. 2011, 00:06

Merci pour vos contributions, je viens de tester les 2 méthodes

la méthode de Xtg renvoie la même chose:

string ' 1 ' (length=3)
string ' 1 ' (length=3)


la méthode de liens_geeks renvoie

string ' 1 ' (length=1)
string ' 1 ' (length=3)

J'en déduis donc que mes variables n'ont pas la même longueur, mais pourquoi? mystère... si je mets mon formulaire en méthode GET voilà ce qui s'affiche dans la barre d'adresse du navigateur .......&listexercice=+1+ la variable listeexercice est ma balise <select> passée en paramètre.

Re: boucle if ne fonctionne pas

par liens_geeks » 05 déc. 2011, 12:22

Bonjour,
Pour simplifier ton debuggage, je commenterais le 1er if() {}else{}.
Au moins tu écartes le fait de modifier la valeur de ta variable $exe_code.

J'ai rajouté à ton code qqes lignes de debuggage, ça renvoie quoi dans ton navigateur?

Code : Tout sélectionner

<td> <label for="listexercice">exercice : </label> </td> <td> <select name="listexercice" id="listexercice"> <?php $reponselistexe = $bdd->query('SELECT * FROM exercice order by exe_nom'); /*recuperation de toutes les valeurs de la table exercice*/ while ($donneeslistexe = $reponselistexe->fetch()) { ?> <option value=" <?php echo $donneeslistexe['exe_id']; ?> " <?php [b]//DEBUT DEBUGGAGE echo '$donneeslistexe[\'exe_id\'] vaut : [.'$donneeslistexe['exe_id'].']<br />'; echo '$_POST[\'listexercice\'] vaut : [.'$_POST['listexercice'].']<br />'; echo '<pre>'; var_dump($donneeslistexe['exe_id']); var_dump($_POST['listexercice']); echo '</pre>' //FIN DEBUGGAGE[/b] if ($donneeslistexe['exe_id'] == $exe_code) { echo " 'selected' "; echo $donneeslistexe['exe_id']; echo "ok"; echo $exe_code; } else { echo $donneeslistexe['exe_id']; echo "tst"; echo $exe_code; } ?> > <?php echo $donneeslistexe['exe_nom']; ?> </option> <?php } ?> </select> </td>
PS : je n'ai pas testé le code rajouté, il y a peut être des fautes de syntaxe

Re: boucle if ne fonctionne pas

par xTG » 05 déc. 2011, 07:26

Hum pas malin de ma part de t'avoir proposé ça alors que tu fixes à 0 manuellement dans un cas.
Regardes plutôt avec var_dump(), cela te donnera le type de variable et si c'est un string la longueur.
Parce qu'à priori il y a peut être des caractères non imprimables qui sont là en trop.

Re: boucle if ne fonctionne pas

par mirlipi » 04 déc. 2011, 23:48

Merci pour la réponse rapide, je viens de tester les 2 variables renvoient la même valeur avec strlen. Mais il y a une chose bizarre strlen renvoie bien la taille de la variable non? car strlen renvoie 3 alors que mes variables contiennent le chiffre 2

Re: boucle if ne fonctionne pas

par xTG » 04 déc. 2011, 23:37

Et avec strlen() les deux variables ont-elles la même longueur ?

boucle if ne fonctionne pas

par mirlipi » 04 déc. 2011, 23:30

Bonjour, j'ai besoin d'aide car mon if ne fonctionne pas, j'ai mis plusieurs balises echo pour tester les valeurs des variables de mon if. Le problème est que même quand les 2 valeurs sont égales tout passe dans le else merci de votre aide.
<?php
if(isset($_POST['listexercice']))
{
$exe_code=$_POST['listexercice'];
echo 'form';
echo $exe_code;
}
else
{
echo 'vide';
$exe_code=0;
echo $exe_code;
}
?>

<td>
<label for="listexercice">exercice : </label>
</td>
<td>
<select name="listexercice" id="listexercice">
<?php



$reponselistexe = $bdd->query('SELECT * FROM exercice order by exe_nom');

/*recuperation de toutes les valeurs de la table exercice*/
while ($donneeslistexe = $reponselistexe->fetch())
{
?>
<option value=" <?php echo $donneeslistexe['exe_id']; ?> "
<?php

if ($donneeslistexe['exe_id'] == $exe_code)
{
echo " 'selected' ";
echo $donneeslistexe['exe_id'];
echo "ok";
echo $exe_code;
}
else
{
echo $donneeslistexe['exe_id'];
echo "tst";
echo $exe_code;
}

?>
>
<?php echo $donneeslistexe['exe_nom']; ?> </option>
<?php } ?>
</select>
</td>