besoin d'une ptite aide en php

luciferia22

Membre confirmé
27 Février 2006
22
0
salut tout le monde,

j'ai un petit soucis, je voudrais savoir comment il est possible de pré-selectionner une valeur dans une liste déroulante.

Dans mon cas c'est une date, il me faudrait pré-selectionner le jour et le mois qui sont dans 2 listes déroulantes distinctes. Il est facile de pré-selectionner une valeur fixe mais moi je ne sais pas le faire si il s'agit du jour par exemple...

voila le code source d'un site qui fait ca :
Bloc de code:
<select name="F_MOIS" class=champ>
           %>
            <option value="01" >01</option>
           %>
            <option value="02" >02</option>
           %>
            <option value="03" selected>03</option>
           %>
            <option value="04" >04</option>
           %>
            <option value="05" >05</option>
           %>
            <option value="06" >06</option>
           %>
            <option value="07" >07</option>
           %>
            <option value="08" >08</option>
           %>
            <option value="09" >09</option>
           %>
            <option value="10" >10</option>
           %>
            <option value="11" >11</option>
           %>
            <option value="12" >12</option>
           
           </select>

il doit tres certainement il y avoir du javascript la dessous mais je ne l'ai pas trouvé dans le code source de la page...
j'ai egalement cherché sur google mais c'est dur de s'exprimer, de trouver les mots clés pour ce probleme.Ma recherche n'a rien donné.

Je ne peux pas vous passer le lien du site qui fait ca car il s'agit d'un site ou l'on saisie des numeros/montants de chèques...et il faut un acces que je ne peux vous donner.

merci par avance pour votre aide.
 
canibal a dit:


<option value="toto" checked="checked" >

après tu gère avec le phph pour savoir laquelle des options tu veux mettre en checked (simple print)

merci pour ton aide mais je ne vois pas la difference entre ce que tu as ecrit et
<option value="03" selected>03</option>


par exemple je recupere le mois en php:
$mois=date(m);

puis en fonction du mois je dois le pré-selectionner dans la liste déroulante soit :
print $mois;

je ne pense pas que ca marche ce que j'ai ecrit, ca m'affichera juste a l'ecran le numero du mois??non??
 
tout a fait

alors pour faire ça c'est simple

tu as:

<?

for ($i= 0; $i <= 30; $i++)
{

echo "
<option value=\"$i\" "
if ( $i==date(m))
echo "checked=\"checked\";
echo " >$i</option>\n";
}
?>



je crois que ça marche je n'ai pas de serveur ici mais si j'avais du la faire j'aurais fait un truc dans ce style
 
Par conter avec ça je en gère pas les mois en 31 jours ou 28 jours ça c'est a toi de voir après ce n'est qu'une esquisse de ce que je pense correcte a toi d'adapter en fonction de tes besoins
 
ton idée me semble tres bonne, apres j'ai quelques soucis pour la mise en oeuvre, j'ai testé ca dans une page php:
Bloc de code:
<select name="select">
<?
$i=1;
if ($i <= 30) {
echo " <option value=\"$i\" "
if ( $i==date(m)) {
echo "checked=\"checked\";
echo " >$i</option>\n";
$i=$i+1;
}
?>
</select>

et j'ai également testé ceci:

Bloc de code:
<?
$i=1;
<select name=\"select\">
if ($i <= 30) {
echo " <option value=\"$i\" "
if ( $i==date(m)) {
echo "checked=\"checked\";
echo " >$i</option>\n";
$i=$i+1;
}
</select>
?>

mais pour les 2 j'obtiens des erreurs.
Si quelqu'un pouvait me dire d'ou ca pourrait venir ca serait cool.

Au tout cas vraiment merci a Cannibal pour toutes ces réponses! :up:
 
luciferia22 a dit:
ton idée me semble tres bonne, apres j'ai quelques soucis pour la mise en oeuvre, j'ai testé ca dans une page php:
Bloc de code:
<select name="select">
<?
$i=1;
if ($i <= 30) {
echo " <option value=\"$i\" "
if ( $i==date(m)) {
echo "checked=\"checked\";
echo " >$i</option>\n";
$i=$i+1;
}
?>
</select>
et j'ai également testé ceci:

Bloc de code:
<?
$i=1;
<select name=\"select\">
if ($i <= 30) {
echo " <option value=\"$i\" "
if ( $i==date(m)) {
echo "checked=\"checked\";
echo " >$i</option>\n";
$i=$i+1;
}
</select>
?>
mais pour les 2 j'obtiens des erreurs.
Si quelqu'un pouvait me dire d'ou ca pourrait venir ca serait cool.

Au tout cas vraiment merci a Cannibal pour toutes ces réponses! :up:

il te lmanque une accolade a la fin , en plus tu ne fais pas de boucle tu n'afficheras donc qu'un seul jour.
le premier ce n'est aps un if qu'il faut mettre mais un while.
 
je suis vraiment un blaireau!! pourtant je programme en c++, java,vb et j'ai meme pas vu que j'avais fait une erreur sur le WHILE mais lol

mieux vaut s'en rendre compte rapidement grace a vous que jamais!

sinon toujours en train de galérer sur ce petit probleme ^^

alors cette fois ci j'ai tapé ca dans ma page php:

<?
echo "<select name=\"select\">";
$i=1;
while ($i <= 30) {
echo "<option value=\"$i\"";
if ($i==date(m)) {
echo "checked=\"checked\"";
echo " >$i</option>\n";
$i=$i+1;
}
echo "</select>";
?>


j'ai une erreur sur la derniere ligne, le echo "</select>"; et je ne sais pas s'il faut rajouter des guillements quelque part vu que c'est du php ou quelle est ma faute...

merci encore par avance pour votre aide.
 
gwena a dit:
deja c'est pas checked, c'est juste selected

il faut déjà regarder le code html que génère ton code php.
ça dépend aussi du niveau html que tu veux (il faut alors soit 'selected', soit 'selected="selected"').
moi j'utilise du XHTML 1.0 Strict et voici un exemple de code à obtenir.

<select name="Category" tabindex="1" id="Category">
<option value="0">Toutes</option>
<option value="3">Dictionnaires</option>
<option selected="selected" value="2">Jeux</option>
<option value="7">Listes diverses</option>
</select>
 
luciferia22 a dit:
je suis vraiment un blaireau!! pourtant je programme en c++, java,vb et j'ai meme pas vu que j'avais fait une erreur sur le WHILE mais lol

mieux vaut s'en rendre compte rapidement grace a vous que jamais!

sinon toujours en train de galérer sur ce petit probleme ^^

alors cette fois ci j'ai tapé ca dans ma page php:

<?
echo "<select name=\"select\">";
$i=1;
while ($i <= 30) {
echo "<option value=\"$i\"";
if ($i==date(m)) {
echo "checked=\"checked\"";
echo " >$i</option>\n";
$i=$i+1;
}
echo "</select>";
?>


j'ai une erreur sur la derniere ligne, le echo "</select>"; et je ne sais pas s'il faut rajouter des guillements quelque part vu que c'est du php ou quelle est ma faute...

merci encore par avance pour votre aide.

ca sent l'accent du bof windows
 
luciferia

je t'ai dit qu'il te manque un } enfin une accolade

tu en as une d'ouverte pour le while une pour le if mais tu n'en ferme qu'une c'est de làa que viens ton problème... (c'est une erreur de débutant on t'en voudras pas)

et soit pas trop fier de programmer en vb a la limite c'ets presque honteux que de connaitre ce langage
 
Bloc de code:
<?PHP

$htm_select_mask = "<select name=\"%s\" tabindex=\"%s\" id=\"%s\">\n%s</select>";
$htm_option_mask = "\t<option value=\"%s\" %s>%s</option>\n";

$i=1;

do{
    $attr=($i == date('d')) ? 'selected="selected"' : '';
    $options.=sprintf($htm_option_mask,$i,$attr,$i);
    $i++;
    
} while($i <= 30);


$select = sprintf($htm_select_mask,'SelectName','1','SelectID',$options);

echo $select;

?>
j'en avais marre de voir des horreurs,
bon noter que tout ça est obsolete et ce genre de manip ce fait coter client
avec seulement des appels de flux xml aux script php
c'est une vision du dev web completement has been des selects en php
houarf xls hourf

Bloc de code:
<select name="SelectName" tabindex="1" id="SelectID">
    <option value="1" >1</option>
    <option value="2" >2</option>
    <option value="3" >3</option>
    <option value="4" >4</option>
    <option value="5" >5</option>
    <option value="6" >6</option>
    <option value="7" >7</option>
    <option value="8" >8</option>
    <option value="9" >9</option>
    <option value="10" >10</option>
    <option value="11" >11</option>
    <option value="12" >12</option>
    <option value="13" >13</option>
    <option value="14" >14</option>
    <option value="15" >15</option>
    <option value="16" >16</option>
    <option value="17" >17</option>
    <option value="18" >18</option>
    <option value="19" >19</option>
    <option value="20" >20</option>
    <option value="21" selected="selected">21</option>
    <option value="22" >22</option>
    <option value="23" >23</option>
    <option value="24" >24</option>
    <option value="25" >25</option>
    <option value="26" >26</option>
    <option value="27" >27</option>
    <option value="28" >28</option>
    <option value="29" >29</option>
    <option value="30" >30</option>
</select>