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

PHP & Base de données Discussion :

checkbox et mysql


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 67
    Par défaut checkbox et mysql
    Bonjour,
    Je dois créer dans mon formulaire une case pour la recherche d'emploi. Le problème est que je ne sais pas comment m'y prendre.

    Je suis sous Joomla et les autres champs du formulaire se présente ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <input class="inputbox" type="text" name="poste" value="<?php echo $row->poste; ?>" size="50" maxlength="100" />

    Quelle sera la valeur quand la case est cochée ? ou décochée ?
    Faut-il créer un champ spécial dans mysql? ou VARCHAR conviendra ?

  2. #2
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Bonjour,

    La valeur de ce checkbox sera la valeur de $row->poste.

    Dans le cas ou le checkbox ne sera pas saisie alors il n'existera même pas dans le tableau $_POST

    Pour le type de champ dans MySQL cela dépendra de ce que $row->poste est sensé contenir.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 67
    Par défaut
    Bonjour,
    J'ai essayé de faire mon check box comme ceci mais cela ne fonctionne pas, il n'enregistre pas mon choix :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="recherche_emploi" value="<?php echo $row->recherche_emploi; ?>">

  4. #4
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    Qu'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $row->recherche_emploi;

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 67
    Par défaut
    Cela ne renvoie rien. C'est normal puisque mon champ est vide. Dois-je le remplir avec une valeur par défaut ?
    Je ne vois vraiment pas comment m'y prendre ?

  6. #6
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    la valeur retourné par ton $_POST['recherche_emploi'] dépendra de la valeur de ton $row->recherche_emploi.
    si ton $row->recherche_emploi est vide il est normal que ton $_POST['recherche_emploi'] le soit.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 67
    Par défaut
    Bonsoir,
    Voilà, je n'ai toujours pas réglé mon problème...
    Voici mon formulaire (le champ nous intéressant étant celui nommé "recherche_emploi") :

    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
     
      <form enctype="multipart/form-data" action="index.php?option=<?php echo $option; ?>&Itemid=47&func=save_profile" method="post" name="adminForm" onSubmit="javascript:setgood();">
     
    <div id="page_3" class="closed">
        <table cellpadding="4" cellspacing="1" border="0" width="100%" class="adminform">
    	<tr>
            <td width="20%" align="right">En recherche d'emploi :</td>
            <td width="80%">
             Oui<input type="checkbox" name="recherche_emploi" value="<?php echo $row->recherche_emploi; ?>">
    		</td>
          </tr>
    	<tr>
            <td width="20%" align="right">Société</td>
            <td width="80%">
              <?php echo $societelist; ?><br />
    		</td>
          </tr>
     
    	   </table>
      </div>
    </form>
    Ce formulaire fait appel à la fonction "save_profile" :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
     
    function SaveProfile( $option, $Itemid )
    {
      global $database, $my, $mosConfig_absolute_path;
     
      // Management for uploaded image.
      if ( function_exists("imagecreatefromjpeg") && isset($_FILES) && preg_match("/[^\.]+\.(png|jpg|jpeg|PNG|JPG|JPEG)$/",$_FILES['imgfile']['name']) ) {
         //echo 'TEST<br />';
         if ( is_uploaded_file($_FILES['imgfile']['tmp_name']) ) {
         	//echo "Fichier valide<br />";
         	$uploaddir = $mosConfig_absolute_path."/images/stories/"._PBK_PARAM_IMGDIR;
         	$uploadfile = $uploaddir.$my->id; //.".jpg";
         	$array_img = getimagesize($_FILES['imgfile']['tmp_name']);
         	if ($array_img !== false) {
         	   $width_orig = $array_img[0];
    	   $height_orig = $array_img[1];
    	   $type_orig = $array_img['mime'];
         	   switch ($type_orig) {
       	      //case "image/gif" :
    		 //$uploadfile .= ".gif";
    		 //$type = "gif";
    		 //echo "TESTGIF<br />";
    		 //break;
       	      case "image/jpeg" :
    		 $uploadfile .= ".jpg";
    		 $type = "jpeg";
    		 break;
       	      case "image/png" :
    		 $uploadfile .= ".png";
    		 $type = "png";
    		 break;
       	      default :
    		 $uploadfile .= ".jpg";
    		 $type = "jpeg";
    	   }
    	   exec('rm '.$uploaddir.'/'.$my->id.'.*');
        	   $func_create = "imagecreatefrom".$type;
        	   $img_src = $func_create($_FILES['imgfile']['tmp_name']);
    	   $height_dst = 150;
    	   $width_dst = 150;
    	   if ($height_orig > $height_dst || $width_orig > $width_dst ) {
    	      if ($width_dst && ($width_orig < $height_orig)) {
       	      	 $width_dst = ($height_dst / $height_orig) * $width_orig;
     	      }
           	      else {
        	         $height_dst = ($width_dst / $width_orig) * $height_orig;
     	      }
    	      $img_dst = imagecreatetruecolor($width_dst, $height_dst);
    	      imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $width_dst, $height_dst, $width_orig, $height_orig);
         	      $func_save = "image".$type;
         	      $func_save($img_dst, $uploadfile);
          	      //echo "Fichier redimensionné et copié<br />";
    	   }
    	   else {
         	      $func_save = "image".$type;
         	      $func_save($img_src, $uploadfile);
       	      //echo "Fichier copié tel quel<br />";
        	   }
         	   $_POST['picture'] = basename($uploadfile);
            }
         }
      }
     
      // We uppercase the first letter of name and position to avoid ordering problems in staff list.
      $_POST['name'] = ucfirst( $_POST['name'] );
      $_POST['position'] = ucfirst( $_POST['position'] );
     
      $row = new mospeoplebook( $database );
      // bind --> cf line 612 in file includes/database.php
      if (!$row->bind( $_POST )) {
        echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
        exit();
      }
     
      // Don't need the following lines cause $my is global.
      //$mainframe = new mosMainFrame( $database, $option, '.' );
      //$mainframe->initSession();
      //$my = $mainframe->getUser();
      $row->id = $my->id;
     
      // Test if this user id is already used in peoplebook table.
      $database->setQuery("SELECT id FROM #__peoplebook WHERE id = '$row->id'");
      // If not, we add the new entry in peoplebook table.
      if ( !$database->loadResult() ) {
        // We automagically publish the new entry if publication policy allow that.
        $row->published = _PBK_PARAM_AUTOPUBLI;
        $database->insertObject('#__peoplebook',$row,'id');
     
      }
      else {
      #$row->date = date( "Y-m-d H:i:s" );
      // store --> cf line 656 in file includes/database.php
         if (!$row->store()) {
             echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
        	 exit();
         }
      }
      $row->updateOrder( "catid='$row->catid'" );
     
      $data = $_POST[data];
      $idset_2 = $_POST[cfdIDs];
      $i = 0;
     
      foreach( $_POST[cfIDs] as $cfID )
      {
      	$dataset[data] = $data[$cfID];
    	$dataset[cfID] = $cfID;
    	$dataset[cfdID] = $idset_2[$i];
    	$dataset[uID] = $row->id;
     
    	$row2 = new mospeoplebook_customfields_data( $database );
     
    	if ( !$row2->bind( $dataset ) )
    	{
    	  echo "<script> alert('".$row2->getError()."'); window.history.go(-1); </script>\n";
       	  exit();
    	}
     
    	if ( !$row2->store( $dataset[cfdID] ) )
    	{
          echo "<script> alert('".$row2->getError()."'); window.history.go(-1); </script>\n";
          exit();
        }
    	$row2->updateOrder( "cfdID='$row2->cfdID'" );
    	$i++;
      }
     
      mosRedirect( "index.php?option=$option&Itemid=47".$Itemid_redirect );
    }
    Et enfin dans ma table jos_peoplebook le champ recherche_emploi est vide.
    Faut-il le remplir par défaut à 0 ?

    Merci de votre aide ..

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 67
    Par défaut
    J'ai réussi à résoudre mon problème en utilisant non pas une checkbox mais une yesnoRadiolist :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $recherche_emploilist = mosHTML::yesnoRadioList( 'recherche_emploi', 'class="inputbox"', intval( $row->recherche_emploi ), 'Oui','Non' );
    Néamoins, il me reste le problème de l'affichage, j'ai deja essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<tr><td><b>"."En recherche d'emploi".'&nbsp;:'."</b></td><td>$row1->recherche_emploi</td></tr>";
    Mais il m'affiche '1' ou '0' et non pas 'Oui' et 'Non' ...

    Enfin je voudrais faire une recherche sur ce champ mais je n'y parviens pas.
    Voilà un bout de mon formulaire de recherche, pour vous donner une idée de comment il est formé :

    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
     
     echo '<br><table border="0"  >';
            echo '<tr><td ><div style="margin-left:4px;"><b>Filtrer par :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></div></td><td>'."Société".'</td>';
            echo '<td><select name="search_societe" class="select">';
            echo '<option value="%">'.Toutes.'</option>';
            $query1="SELECT * FROM jos_societe ORDER BY `nomsoc` ASC";
            $database->setQuery($query1);
            $rows = $database->loadObjectList();
            foreach ($rows as $row1) {
                echo '<option value="'.$row1->id_societe.'"';
                if (isset($search_societe) && $search_societe !== '%' && $search_societe == $row1->id_societe) {echo ' selected';}
                echo '>'.$row1->nomsoc.'</option>';
     
            }
            echo '</select></td></tr>';
            echo '</table>';

Discussions similaires

  1. [MySQL] Checkbox et MySQL ?
    Par FSDonwload dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/08/2008, 18h08
  2. Réponses: 5
    Dernier message: 18/02/2008, 16h11
  3. Inserer valeur checkbox dans MySQL
    Par Kornikopic dans le forum IHM
    Réponses: 3
    Dernier message: 19/06/2007, 13h22
  4. probleme checkbox et mysql
    Par faucon54 dans le forum SQL Procédural
    Réponses: 10
    Dernier message: 16/05/2007, 21h04
  5. Récupérer des valeurs de checkbox dans MySQL
    Par digger dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 05/09/2005, 14h58

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