PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#2 Re : Forum Général PHP » Valeurs d'un formulaire non récupérées » 15-02-2011 00:33:29

Merci xTG;

J'ai repris le code <input type="checkbox" .... > et la function et maintenant tout est ok smile

#3 Re : Forum Général PHP » Valeurs d'un formulaire non récupérées » 15-02-2011 00:33:29

Merci ça marche

L'autre problème de mon code est que les cases ne sont pas cochées après la validation du formulaire sad

#4 Re : Forum Général PHP » Valeurs d'un formulaire non récupérées » 15-02-2011 00:33:29

Merci pour la réponse.

Exacte, je commence à la semaine 1.
J'avance, je récupère bien les valeurs.

Mais quand j'arrive sur ma page j'ai le message suivant sad

Notice: Undefined index: prix_semaine in C:\Weblocal\Sites\Vias\affiche_cal.php on line 72

Je ne vois pas pourquoi vu que je n'ai pas de message pour la ligne 66 qui est la même et que j'ai fait un copier/coller pour être sûr.

#5 Re : Forum Général PHP » Valeurs d'un formulaire non récupérées » 15-02-2011 00:33:29

Bonjour et merci

Une table semaines1 contient : Annee, Num (de semaine), une date de début de semaine (Debut) et de fin (Fin). La table contient les semaines des 20 prochaines années.

Ma requete sélectionne toutes les semaines de l'année 2011.
A l'aide d'une boucle, je construis des input de type text et des checkbox. 1 input text et 1 checkbox par semaine.

Mon problème est le suivant :
Je n'arrive pas à récupérer les valeurs saisies dans les input text ni à conserver les cases cochées quand je valide le formulaire.
voici ma page en question


<div style="position:relative;width:490px;margin-left:0px;background-color:#ffffff;display:block">
<p align="center">
Calendrier des semaines (du samedi au samedi) de l'année <?php echo date('Y');?><br />
Indiquer le prix de la location pour chaque semaine<br />
Cocher la case pour vous réserver la semaine </p>
<div id="idv1" style="background-color:beige; display:block">
<form name="semestre1" method="POST" action="index.php?page=acces">
<p align="center">Cliquer <a href="#">ICI</a> pour afficher le 2 ème semestre</p>
<table border="0"cellspacing="10">
<colgroup width="117px">
<colgroup width="117px">
<colgroup width="117px">
<colgroup width="117px">
<tr height="50px">
<?php
$semaine="";
require ('connect.php');

if (isset($_POST['prix_semaine'])){
  foreach($_POST['prix_semaine'] as $index=>$valeur){
    $semaine=$valeur;
//    echo '<br />'.$index.' : '.$valeur.'<br />';
    var_dump($_POST['prix_semaine']);
  }
}

if (isset($_POST['Disponibilite'])) $Disponibilite=$_POST['Disponibilite'];
else $Disponibilite = "";
if (isset($_POST['Disponibilite'])) {
    for ($i = 0, $c = count($_POST['Disponibilite']); $i < $c; $i++) {
        $Disponibilite ="" . $_POST['Disponibilite'][$i] . "</b>";
    }
}
function est_selectionne($option) {
    if (!isset($_POST['Disponibilite'])) {
            return FALSE;
    }
    for ($i = 0, $c = count($_POST['Disponibilite']); $i < $c; $i++) {
        if ($_POST['Disponibilite'][$i] == $option) {
            return TRUE;
        }
    }
    return FALSE;
}

$year = date('Y');
$i = 0;
$sql = mysql_query("SELECT * FROM semaines1 WHERE Annee = $year LIMIT 0, 2");
$nb_lignes = mysql_num_rows($sql);
while ($i < $nb_lignes){
  $id_semaine = mysql_result($sql,$i,"Num");
  //traitement de la date de début
  $debut = mysql_result($sql,$i,"Debut");
  list($anneeD, $moisD, $jourD) = explode('-', $debut);
  if ($jourD < 10)  $jourD=substr($jourD,1, 1);
  $DateDebut = $jourD.'/'.$moisD;
  //traitement de la date de fin
  $fin = mysql_result($sql,$i,"Fin");
  list($anneeF, $moisF, $jourF) = explode('-', $fin);
  if ($jourF < 10)  $jourF=substr($jourF,1, 1);
  $DateFin = $jourF.'/'.$moisF;
  if ($moisD == $moisF) $DateDebut = $jourD;
  if ($i != 0 && $i % 4 == 0){
    echo '</tr><tr height="50px">';
    echo "<td align='center' class='interieur'> du $DateDebut au $DateFin <br /> 
      <input type='text' name='prix_semaine[]' value='$semaine' style='width:70px' class='input'>
            <input type='checkbox' name='Disponibilte[]' value='$id_semaine'  if(est_selectionne('$id_semaine')) { echo 'checked'; } /></td>"
;
  }
  else {
    echo "<td align='center' class='interieur'> du $DateDebut au $DateFin <br /> 
      <input type='text' name='prix_semaine[]' value='$semaine' style='width:70px' class='input'>
            <input type='checkbox' name='Disponibilte[]' value='$id_semaine' if(est_selectionne('$id_semaine')) { echo 'checked'; } /></td>"
;
  }
$i++;
}
?>
</tr></table>
<input type="submit" name="semestre1" value="Valider">
</form>
</div>
</div>
 

Avec ce code si je saisie 300 dans le 1er input text et 15 dans le 2è et que je coche une case, les 2 input text me renvoient 15 et la case n'est pas cochée.

Je cherche depuis plusieurs sans résultat.

Merci d'avance

#8 Re : Forum Général PHP » Valeurs d'un formulaire non récupérées » 15-02-2011 00:33:29

Pierrot a écrit :

haaaaaaaaaaaaaa XTg, sort de ce corps big_smile:D

a++

Cela ne m'aide pas beaucoup sad

#9 Forum Général PHP » Valeurs d'un formulaire non récupérées » 15-02-2011 00:33:29

philippf
Réponses : 14

Bonjour,

Une requete me renvoie : Annee, Num (n° de semaine), Debut (de semaine qui est un samedi) et Fin (de semaine qui est un samedi).
Avec l'aide d'xTG, j'ai pu résoudre le problème de présentation.
Maintenant j'essaie de récupérer les valeurs saisies dans les input text et les cases cochées.

J'ai cherché un peu partout la solution mais ... pas trouvé.
Mon code :


if (isset($_POST['prix_semaine']))  $semaine=$_POST['prix_semaine'];
else $semaine = "";
if (isset($_POST['prix_semaine'])){
    for ($i = 0, $c = count($_POST['prix_semaine']); $i < $c; $i++) {
        $semaine = "" . $_POST['prix_semaine'][$i] . "";
    }
}

if (isset($_POST['Disponibilite'])) $Disponibilite=$_POST['Disponibilite'];
else $Disponibilite = "";
if (isset($_POST['Disponibilite'])) {
    for ($i = 0, $c = count($_POST['Disponibilite']); $i < $c; $i++) {
        $Disponibilite ="" . $_POST['Disponibilite'][$i] . "</b>";
    }
}
function est_selectionne($option) {
    if (!isset($_POST['Disponibilite'])) {
            return FALSE;
    }
    for ($i = 0, $c = count($_POST['Disponibilite']); $i < $c; $i++) {
        if ($_POST['Disponibilite'][$i] == $option) {
            return TRUE;
        }
    }
    return FALSE;
}

$year = date('Y');
$i = 0;
$sql = mysql_query("SELECT * FROM semaines1 WHERE Annee = $year LIMIT 0, 26");
$nb_lignes = mysql_num_rows($sql);
while ($i < $nb_lignes){
  $id_semaine = mysql_result($sql,$i,"Num");
  //traitement de la date de début
  $debut = mysql_result($sql,$i,"Debut");
  list($anneeD, $moisD, $jourD) = explode('-', $debut);
  if ($jourD < 10)  $jourD=substr($jourD,1, 1);
  $DateDebut = $jourD.'/'.$moisD;
  //traitement de la date de fin
  $fin = mysql_result($sql,$i,"Fin");
  list($anneeF, $moisF, $jourF) = explode('-', $fin);
  if ($jourF < 10)  $jourF=substr($jourF,1, 1);
  $DateFin = $jourF.'/'.$moisF;
  if ($moisD == $moisF) $DateDebut = $jourD;
  if ($i != 0 && $i % 4 == 0){
    echo '</tr><tr height="50px">';
    echo "<td align='center' class='interieur'> du $DateDebut au $DateFin <br /> 
      <input type='text' name='prix_semaine[$id_semaine]' value='$semaine' style='width:70px' class='input'>
            <input type='checkbox' name='Disponibilte[]' value='$id_semaine'  if(est_selectionne('$id_semaine')) { echo 'checked'; } /></td>"
;
  }
  else {
    echo "<td align='center' class='interieur'> du $DateDebut au $DateFin <br /> 
      <input type='text' name='prix_semaine[$id_semaine]' value='$semaine' style='width:70px' class='input'>
            <input type='checkbox' name='Disponibilte[]' value='$id_semaine' if(est_selectionne('$id_semaine')) { echo 'checked'; } /></td>"
;
  }
$i++;
}
?>
</tr></table>
<input type="submit" name="sem1" value="Valider1">

J'arrive à traiter quand il s'agit d'une série d'input text ou checkbox simples mais là je bloque.

Merci d'avance

#10 Re : Forum Général PHP » Compléter une boucle [Résolu] » 05-02-2011 16:59:31

Merci, ça marche comme je voulais

Je ne sais pas si on peut et comment mettre un "Résolu" !!

#11 Re : Forum Général PHP » Compléter une boucle [Résolu] » 05-02-2011 16:59:31

Je crois que je ne me suis pas bien fait comprendre.

Il me faut une boucle qui me donnerait quelque chose du genre :
<tr>
      <td>$datedebut $datefin</td> <td>$datedebut $datefin</td><td>$datedebut $datefin</td><td>$datedebut $datefin</td><td>$datedebut $datefin</td>
</tr>
<tr>
      <td>$datedebut $datefin</td> <td>$datedebut $datefin</td><td>$datedebut $datefin</td><td>$datedebut $datefin</td><td>$datedebut $datefin</td>
</tr>
etc...

Autrement dit tous les 5 enregistrements je crée une nouvelle ligne

#12 Forum Général PHP » Compléter une boucle [Résolu] » 05-02-2011 16:59:31

philippf
Réponses : 5

Bonjour,

Une requete me renvoie X lignes composées de DateDebut et DateFin.
Je voudrai construire un tableau avec 5 colonnes dont chaque cellule de chaque colonne contiendrait "$DateDebut $DateFin"
Voilà ma boucle pour le moment

$sql = mysql_query("SELECT * FROM semaines WHERE id_semaine < 54");
$nb_lignes = mysql_num_rows($sql);
for ($i=0; $i<$nb_lignes; $i++){
  $id_semaine = mysql_result($sql,$i,"id_semaine");
  //traitement de la date de début
  $debut = mysql_result($sql,$i,"debut");
  list($anneeD, $moisD, $jourD) = explode('-', $debut);
  $DateDebut = $jourD.' '.$moisD;
  //traitement de la date de fin
  $fin = mysql_result($sql,$i,"fin");
  list($anneeF, $moisF, $jourF) = explode('-', $fin);
  $DateFin = $jourF.' '.$moisF;
                echo "<br />$id_semaine du $DateDebut au $DateFin";
}

Je ne vois comment modier ma boucle pour avoir les 5 colonnes.

Merci d'avance

Pied de page des forums

Propulsé par FluxBB