Page 1 sur 1

mette la valeur d'un select dans une checkbox

Posté : 14 août 2011, 15:55
par steph11574
bonjour j'ai un tableau qui se rempli suivant une requette sql
le nombre de ligne depend du resultat
je voudrais inserer un select et ne checkbox a la fin de chaque ligne

la personne logger pourrais alors selectionner une valeur du select qui devrais etre valider sans envoyer le formulaire et cocher une ou plusieurs check box puis il valide par un bouton submit et les données de la checkbox sont envoyer par l'intermediaire un fichier serv.php dans une table et je voudrais que la valeur du select soit envoyer dans la table

si quelqu'un pouvais m'aider j'ai chercher ds pas mal de forum mais de reponse

merci d'avance
<?php

 Require_once("connect.php"); 
  
  echo '<head><link rel="stylesheet" type="text/css" href="stylesheet.css" /></head>';
  echo '<body bgcolor=#D3E8ED>';
  
 
 echo '<script language=\"JavaScript\">function checkSelectValue()
{
 $_SESSION['select'] = document.choix.selectedIndex;
}
</script>';



 
	
	
	//on affiche le resultat des calendrier suivanr l'activite
	
	 
	  
	if($_SESSION['activite'] == 'alpin')
	  {	
			// on vas recuperer les info course dans la table calendrier 

			$date = date("Y-m-d");
		  $date_s = date_num($date);
     
		  $sql = "SELECT distinct evt_code,evt_date_comp,evt_activite,evt_nom,entite,evt_station,evt_club_nom, epr_discipline from calendrier_regional where  evt_activite = ('ALP') ";
		  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
      $data = mysql_num_rows($req);
	  }
		
		if($_SESSION['activite'] == 'fond')//affichage calendrier_regional fond
	  {
			
			// on vas recuperer les info course dans la table calendrier 
			
			
			$date = date("Y-m-d");
		  $date_s = date_num($date);
     
		  $sql = "SELECT distinct evt_code,evt_date_comp,evt_activite,evt_nom,entite,evt_station,evt_club_nom, epr_discipline from calendrier_regional where  evt_activite = ('FOND') ";
		  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
      $data = mysql_num_rows($req);
	  }
	 
		if($data)
      	{
	  		$compteur = 0;
			$compteur1 = 0;
			 echo '<FORM method=post action="serv.php">';
			  // début du tableau
        echo '<table bgcolor="#A9DBE0">'."\n";
            // première ligne on affiche les titres prénom et Nom dans 12 colonnes
            echo '<tr>';
            echo '<td bgcolor="#669999"><b>date</td>';
			echo '<td bgcolor="#669999"><b>discipline</b></td>';
			echo '<td bgcolor="#669999"><b>evt_codex</td>';
			echo '<td bgcolor="#669999"><b>nom de l_évènement</b></td>';
			echo '<td bgcolor="#669999"><b>station</b></td>';
            echo '<td bgcolor="#669999"><b>club organisateur</b></td>';
			echo '<td bgcolor="#669999"><b>Poste souhaité</b></td>';
            echo '<td bgcolor="#669999"><b>Dispo</b></td>';
            echo '</tr>'."\n";
			// lecture et affichage des résultats sur 12 colonnes, 1 résultat par ligne.
				
				while($row = mysql_fetch_array($req))
         		{
			
					
                $evt_date_comp = date_francaise($row['evt_date_comp']);
				$evt_activite = $row['evt_activite'];
				$evt_codex = $row['evt_code'];
                $evt_nom = $row['evt_nom'];
                $evt_station = $row['evt_station'];
                $evt_club_nom = $row['evt_club_nom'];
				$epr_discipline= $row['epr_discipline'];
                $code_officiel = $_SESSION['Code_coureur'];
             
                echo '<tr onmouseover="this.style.backgroundColor=\'#FF0000\';" onmouseout="this.style.backgroundColor=\'\';"  bgcolor="#CCCCCC">';
               echo '<td >'.$evt_date_comp.'</td>';
			   echo '<td >'.$epr_discipline.'</td>';
			   echo '<td >'.$evt_codex.'</td>';
			    echo '<td >'.$evt_nom.'</td>';
                echo '<td >'.$evt_station.'</td>';
                echo '<td >'.$evt_club_nom.'</td>';
				
				echo' <form action="courses.php" method="post" name="choix">';
 
echo '<td><select name=\"poste\" id=\"select\" style=\"width:50px;\" onChange=\"checkSelectValue()\">
				<option value="0"> Chosissez votre page</option>
                <OPTION value="Tous postes" >Tous postes</option>
				<OPTION value="DT." >DT.</option>
				<OPTION value="fChef controleur" >Chef control.</option>
                <OPTION value="Juge" >juge </option>
                <OPTION value="Piste" >Piste</option>
				<OPTION value="Starter" >Starter</option>
                <OPTION value="Chrono" >Chrono</option></SELECT></td>';
				
				echo'<td><input type="text" name="item_number" value=""></td>';
 // je met le champ en text pour tester apres tu le passeras e hidden
                 echo'</form>';
				
				$poste = $_SESSION['select'];
			
			 
				echo '<td> <p> <INPUT TYPE="CHECKBOX" name="options[]" value="'.$evt_date_comp.','.$evt_activite.','.$evt_codex.','.$code_officiel.''.$poste.'"></p> </td>';
                echo '<SCRIPT LANGUAGE = "JavaScript">';
                echo 'function CreateWindow'.$row['evt_code'].'()
                  {msgWindow=window.open("donnee_course.php?evt_code='.$evt_codex.'","displayWindow","toolbar=no,width=600,height=370,directories=no,status=no,scrollbars=yes,resize=no,menubar=no")}';  
                echo '</SCRIPT>';
                echo '<td> <p> <INPUT TYPE="button" VALUE="épreuves" onClick="CreateWindow'.$row['evt_code'].'()"></p> </td>';  
                
                
				
               echo '</tr>'."\n";
			    $compteur = +1;
              $compteur1 = $compteur1 +1;
			 	
                }
              
            
            
        
		echo '</table>'."\n";
        // echo '<p> Catégorie " * " = catégorie <b> Poussins </b>';
         echo '<P>';
        // fin du tableau.
		
		 }
		
		
		if ($compteur1 != 0)
              {
			  echo 'il y a   '.$compteur1.'  évènements dans le calendrier   '.$_SESSION['activite'].'  pour la saison    ';
			  echo date('Y'); //affichera l'année actuelle sur 4 chiffres 
			$steph = date("Y")+ 1;
				echo '/'.$steph.''; //affichera l'année actuelle sur 4 chiffres + 1 an 
        
           echo '<td bgcolor="#CCCCCC"><p><b>Envoyer    :             </b><input type="submit" value="ses disponibilitées" name="B1" title="Inscrire"></td>';
		   echo '<td bgcolor="#CCCCCC"><p><b>Modifier   :             </b><input type="submit" value="les disponibilitées" name="B2" title="modifier></p></td>';
		   echo '<td bgcolor="#CCCCCC"><p><b>Vous pouvez consulter la liste complete des officiels de l\' évènement sélectionner en cliquant sur visualiser</b></p></td>';
           echo '<td bgcolor="#CCCCCC"><p><b>        </b><input type="submit" value="Visualiser" name="B3" title="Visualiser"></p></td>';
     	   
		echo '</form>'; 
		 } 
		 
		
// on ferme la connexion à mysql
mysql_close(); 



   
?>

Re: mette la valeur d'un select dans une checkbox

Posté : 14 août 2011, 20:31
par Alf?>
Salut steph11574,

J'ai repris ton code et... il va falloir faire un tour sur les tutos HTML, CSS et PHP.

Voici ton code en version "retravaillé" :
Partie PHP :
<?php
include 'connect.php';
session_start();

$checkEnJs = '<script type="text/javascript">
                function checkSelectValue()
                {
                  '.$_SESSION['select'].' = document.choix.selectedIndex;
                }
              </script>';

//Intitilés du tableau
$tableauRecapitulatif = array("Date", "Discipline", "Evt_codex", "Nom de l'évènement", "Station", "Club organisateur", "Poste souhaité", "Dispo");

//Initialisation du contenu
$contenu = '';

$date = date("Y-m-d");
/*
  J'ai pas cette fonction
  $date_s = date_num($date);
*/
$activite = $_SESSION['activite'];

//Récupération des informations selon l'activité
$sql = "SELECT * FROM calendrier_regional WHERE evt_activite = '$activite' ";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_num_rows($req);

if($data)
{
  //Initialisation des compteurs
  $compteur = 0;
  $compteur1 = 0;
  
  //Stockage de la couleur (juste pour optimiser le code un peu plus)
  $backColor = '#669999';

  $contenu = '<FORM method="post" action="serv.php">
                <table bgcolor="#A9DBE0">
                  <tr>';
  
    //On génère les intitulés de la première partie du tableau
    foreach($tableauRecapitulatif AS $valeur){
      $contenu .= '<td bgcolor="'.$backColor.'"><b>'.$valeur.'</b></td>';
    }

  $contenu .= '</tr>';

  while($row = mysql_fetch_array($req))
  {
    /*
      J'ai pas cette fonction
      $evt_date_comp = date_francaise($row['evt_date_comp']);
    */
    $code_officiel = $_SESSION['Code_coureur'];
    $poste = $_SESSION['select'];
    
    $contenu .= '<tr onmouseover="this.style.backgroundColor=\'#FF0000\';" onmouseout="this.style.backgroundColor=\'\';"  bgcolor="#CCCCCC">
                  <td>'.$row['evt_date_comp'].'</td>
                  <td>'.$row['epr_discipline'].'</td>
                  <td>'.$row['evt_code'].'</td>
                  <td>'.$row['evt_nom'].'</td>
                  <td>'.$row['evt_station'].'</td>
                  <td>'.$row['evt_club_nom'].'</td>';

    $contenu .= '<form action="courses.php" method="post" name="choix">
                  <td>
                    <SELECT name="poste" id="select" style="width:50px;" onChange="checkSelectValue()">
                      <option value="0"> Chosissez votre page</option>
                      <OPTION value="tous postes" >Tous postes</option>
                      <OPTION value="forum2" >DT</option>
                      <OPTION value="forum3" >Chef control.</option>
                      <OPTION value="forum4" >juge </option>
                      <OPTION value="forum5" >Piste</option>
                      <OPTION value="forum6" >starter</option>
                      <OPTION value="forum7" >Chrono</option>
                    </SELECT>
                  </td>
                </form>';
  
    $contenu .= '<td>
                    <p>
                      <INPUT TYPE="CHECKBOX" name="'.$row['evt_code'].'" value="'.$row['evt_date_comp'].','.$row['evt_activite'].','.$row['evt_code'].','.$code_officiel.','.$poste.'">
                    </p>
                  </td>
                  <SCRIPT type="text/javascript">
                    function CreateWindow'.$row['evt_code'].'()
                    {
                      msgWindow=window.open("donnee_course.php?evt_code='.$row['evt_code'].'","displayWindow","toolbar=no,width=600,height=370,directories=no,status=no,scrollbars=yes,resize=no,menubar=no")
                    } 
                  </SCRIPT>
                  <td> 
                    <p>
                      <INPUT TYPE="button" VALUE="épreuves" onClick="CreateWindow'.$row['evt_code'].'()">
                    </p>
                  </td>
                </tr>'; 

    $compteur++;
    $compteur1++;
  }

  $contenu .= '</table>';
  // echo '<p> Catégorie " * " = catégorie <b> Poussins </b>';
  // echo '<P>';

}


if ($compteur1 != 0)
{
  $contenu .= 'il y a   '.$compteur1.'  évènements dans le calendrier   '.$_SESSION['activite'].'  pour la saison    ';
  $contenu .= date('Y'); //affichera l'année actuelle sur 4 chiffres
  
  $steph = date("Y")+ 1;
  
  $contenu .= '/'.$steph; //affichera l'année actuelle sur 4 chiffres + 1 an
  $contenu .= '<td bgcolor="#CCCCCC"><p><b>Envoyer    :             </b><input type="submit" value="sesdisponibilitées" name="B1" title="Inscrire"></td>
              <td bgcolor="#CCCCCC"><p><b>Modifier   :             </b><input type="submit" value="lesdisponibilitées" name="B2" title="modifier></p></td>
              <td bgcolor="#CCCCCC"><p><b>Vous pouvez consulter la liste complete des officiels de l\' évènement sélectionner en cliquant sur visualiser</b></p></td>
              <td bgcolor="#CCCCCC"><p><b>        </b><input type="submit" value="Visualiser" name="B3" title="Visualiser"></p></td>
              </form>';
}
 
?>
La partie HTML :
<html>
<head>
  <link rel="stylesheet" type="text/css" href="stylesheet.css" />
  <?php echo $checkEnJs; ?> 
</head>

 <body bgcolor="#D3E8ED">
   <?php echo $contenu; ?>
 </body>
</html>
C'est un code encore optimisable mais il fera l'affaire.

Note :
Il te reste plus qu'a faire une vérification du contenu des SESSIONs, afin d'envisager un scénario par défaut.

Si tu as des questions n'hésite pas. :lol:

Re: mette la valeur d'un select dans une checkbox

Posté : 14 août 2011, 22:34
par steph11574
Salut steph11574,

J'ai repris ton code et... il va falloir faire un tour sur les tutos HTML, CSS et PHP.

Voici ton code en version "retravaillé" :
Partie PHP :
<?php
include 'connect.php';
session_start();

$checkEnJs = '<script type="text/javascript">
                function checkSelectValue()
                {
                  '.$_SESSION['select'].' = document.choix.selectedIndex;
                }
              </script>';

//Intitilés du tableau
$tableauRecapitulatif = array("Date", "Discipline", "Evt_codex", "Nom de l'évènement", "Station", "Club organisateur", "Poste souhaité", "Dispo");

//Initialisation du contenu
$contenu = '';

$date = date("Y-m-d");
/*
  J'ai pas cette fonction
  $date_s = date_num($date);
*/
$activite = $_SESSION['activite'];

//Récupération des informations selon l'activité
$sql = "SELECT * FROM calendrier_regional WHERE evt_activite = '$activite' ";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_num_rows($req);

if($data)
{
  //Initialisation des compteurs
  $compteur = 0;
  $compteur1 = 0;
  
  //Stockage de la couleur (juste pour optimiser le code un peu plus)
  $backColor = '#669999';

  $contenu = '<FORM method="post" action="serv.php">
                <table bgcolor="#A9DBE0">
                  <tr>';
  
    //On génère les intitulés de la première partie du tableau
    foreach($tableauRecapitulatif AS $valeur){
      $contenu .= '<td bgcolor="'.$backColor.'"><b>'.$valeur.'</b></td>';
    }

  $contenu .= '</tr>';

  while($row = mysql_fetch_array($req))
  {
    /*
      J'ai pas cette fonction
      $evt_date_comp = date_francaise($row['evt_date_comp']);
    */
    $code_officiel = $_SESSION['Code_coureur'];
    $poste = $_SESSION['select'];
    
    $contenu .= '<tr onmouseover="this.style.backgroundColor=\'#FF0000\';" onmouseout="this.style.backgroundColor=\'\';"  bgcolor="#CCCCCC">
                  <td>'.$row['evt_date_comp'].'</td>
                  <td>'.$row['epr_discipline'].'</td>
                  <td>'.$row['evt_code'].'</td>
                  <td>'.$row['evt_nom'].'</td>
                  <td>'.$row['evt_station'].'</td>
                  <td>'.$row['evt_club_nom'].'</td>';

    $contenu .= '<form action="courses.php" method="post" name="choix">
                  <td>
                    <SELECT name="poste" id="select" style="width:50px;" onChange="checkSelectValue()">
                      <option value="0"> Chosissez votre page</option>
                      <OPTION value="tous postes" >Tous postes</option>
                      <OPTION value="forum2" >DT</option>
                      <OPTION value="forum3" >Chef control.</option>
                      <OPTION value="forum4" >juge </option>
                      <OPTION value="forum5" >Piste</option>
                      <OPTION value="forum6" >starter</option>
                      <OPTION value="forum7" >Chrono</option>
                    </SELECT>
                  </td>
                </form>';
  
    $contenu .= '<td>
                    <p>
                      <INPUT TYPE="CHECKBOX" name="'.$row['evt_code'].'" value="'.$row['evt_date_comp'].','.$row['evt_activite'].','.$row['evt_code'].','.$code_officiel.','.$poste.'">
                    </p>
                  </td>
                  <SCRIPT type="text/javascript">
                    function CreateWindow'.$row['evt_code'].'()
                    {
                      msgWindow=window.open("donnee_course.php?evt_code='.$row['evt_code'].'","displayWindow","toolbar=no,width=600,height=370,directories=no,status=no,scrollbars=yes,resize=no,menubar=no")
                    } 
                  </SCRIPT>
                  <td> 
                    <p>
                      <INPUT TYPE="button" VALUE="épreuves" onClick="CreateWindow'.$row['evt_code'].'()">
                    </p>
                  </td>
                </tr>'; 

    $compteur++;
    $compteur1++;
  }

  $contenu .= '</table>';
  // echo '<p> Catégorie " * " = catégorie <b> Poussins </b>';
  // echo '<P>';

}


if ($compteur1 != 0)
{
  $contenu .= 'il y a   '.$compteur1.'  évènements dans le calendrier   '.$_SESSION['activite'].'  pour la saison    ';
  $contenu .= date('Y'); //affichera l'année actuelle sur 4 chiffres
  
  $steph = date("Y")+ 1;
  
  $contenu .= '/'.$steph; //affichera l'année actuelle sur 4 chiffres + 1 an
  $contenu .= '<td bgcolor="#CCCCCC"><p><b>Envoyer    :             </b><input type="submit" value="sesdisponibilitées" name="B1" title="Inscrire"></td>
              <td bgcolor="#CCCCCC"><p><b>Modifier   :             </b><input type="submit" value="lesdisponibilitées" name="B2" title="modifier></p></td>
              <td bgcolor="#CCCCCC"><p><b>Vous pouvez consulter la liste complete des officiels de l\' évènement sélectionner en cliquant sur visualiser</b></p></td>
              <td bgcolor="#CCCCCC"><p><b>        </b><input type="submit" value="Visualiser" name="B3" title="Visualiser"></p></td>
              </form>';
}
 
?>
La partie HTML :
<html>
<head>
  <link rel="stylesheet" type="text/css" href="stylesheet.css" />
  <?php echo $checkEnJs; ?> 
</head>

 <body bgcolor="#D3E8ED">
   <?php echo $contenu; ?>
 </body>
</html>
C'est un code encore optimisable mais il fera l'affaire.

Note :
Il te reste plus qu'a faire une vérification du contenu des SESSIONs, afin d'envisager un scénario par défaut.

Si tu as des questions n'hésite pas. :lol:
je te remerci pour ton aide mais j'ai erreurs a la
ligne 8 '.$_SESSION['select'].' = document.choix.selectedIndex;
message d'erreure : Notice: Undefined index: select in C:\wamp\www\tableau_service\courses.php on line 8
et a la ligne 58 $poste = $_SESSION['select'];

je suis novice en php et html et je suis en train de modifier se programme pour l'adapter a une application de notre association

message d'errurs: Notice: Undefined index: select in C:\wamp\www\tableau_service\courses.php on line 58

Re: mette la valeur d'un select dans une checkbox

Posté : 15 août 2011, 03:26
par Alf?>
SAlut !

Effectivement. C'est normal qu'il y ait une erreur.

Car tes variables de SESSION sont vides lorsque la page se lance.

il faut que tu leur attribut des valeurs.

Exemple :
$_SESSION['activite'] = 'ALP';
$_SESSION['Code_coureur'] = 'codeCoureur';
De plus tu dois faire une vérification de leur contenu (en de page), en l’occurrence tu dois vérifier que la SESSION qui s'appelle 'select' n'est pas vide (empty) :
if(empty($_SESSION['select'])){
  $_SESSION['select'] = 'choix';
}
Je te conseil de te renseigner à cette adresse sur les SESSIONS : http://www.phpfrance.com/tutoriaux/inde ... ssions-php

Re: mette la valeur d'un select dans une checkbox

Posté : 15 août 2011, 22:19
par steph11574
salut tu as raison je vais aller voir sur le liens que tu ma donner

sinon je n'est plus de message d'erreur mais la variable garde le nom de choix elle ne prend pas la valeur du select

Code : Tout sélectionner

if(empty($_SESSION['select'])) { $checkEnJs = '<script type="text/javascript"> function checkSelectValue() { '.$_SESSION['select'].' = document.choix.selectedIndex; } </script>'; }
c'est le code que j'ai mis en haut
echo '<form action="courses.php" method="post" name="choix">
<td>
<SELECT name="poste" id="select" style="width:50px;" onChange="checkSelectValue()">
<option value="0"> Chosissez votre page</option>
<OPTION value="tous postes" >Tous postes</option>
<OPTION value="forum2" >DT</option>
<OPTION value="forum3" >Chef control.</option>
<OPTION value="forum4" >juge </option>
<OPTION value="forum5" >Piste</option>
<OPTION value="forum6" >starter</option>
<OPTION value="forum7" >Chrono</option>
</SELECT>
</td>';
c'est le code du sélect j'ai du enlever le </form> sinon il me bloquer l'execusion du formulaire finale

Re: mette la valeur d'un select dans une checkbox

Posté : 15 août 2011, 22:43
par sirakawa
tant qu'à retravailler le code,
Require_once("connect.php"); : c'est accepté par Php ce R ?
date_default_timezone_set('Europe/Paris'); est conseillé par php lui-même avant l'emploi de date();

autant normaliser la partie HTMl:
mettre un <html> avant le <head> ne mangerait pas beaucoup de pain...
echo '<head><link rel="stylesheet" type="text/css" href="stylesheet.css" /></head>';
tous les tags en minuscules..
femer les input (toutes les balises doivent être fremées, y compris <br />
<input type="text" name="item_number" value="" />

tout doit être quoté:
<FORM method=post action="serv.php">'; ==> <FORM method="post" action="serv.php">';
et par exemple :
<input type = "text" checked= "checked" name= "toto" value = "1" />

Re: mette la valeur d'un select dans une checkbox

Posté : 18 août 2011, 06:33
par steph11574
je dois etre completement nul mais ca ne fonctionne pas

j'ai des erreurs dans l'ecriture de javascrit eror de syntax ' or '

ou variable indefinisable

si vous pouviez m'aider
steph