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

Langage PHP Discussion :

Cases à cocher


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chargé de référencement
    Inscrit en
    Octobre 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chargé de référencement
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2015
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Cases à cocher
    Bonjour,

    J'ai un code qui fonctionnait dans le temps et ne semble plus pouvoir passer sur php5, je n'en trouve pas la cause,
    Auriez vous une idée de ce qui cloche ?
    Cette fonction ajoute une image sur une fiche produit.
    Il n'y a pas d'erreur visible mais tout reste décoché ...

    Avec tout mes remerciements par avance !

    Voici les bouts de code concernés :

    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
    <?php 
     
     
    $dir = DIR_FS_CATALOG."/images/persoimg/1";
     
    // Ouvre un dossier bien connu, et liste tous les fichiers
    if (is_dir($dir)) {
        if ($dh = opendir($dir)) {
            $elements = explode(":", $pInfo->perso);
            $nb=0;
            while (($file = readdir($dh)) !== false) {
            $file1 = strtolower($file);
            $dchecked="";
            $file2 = str_replace('\'','%1%',$file);
            $file2 = str_replace(' ','%2%',$file2);
            $file2 = str_replace('"','%3%',$file2);
            $file2 = str_replace('.','%4%',$file2);
     
                    if (substr($file1, -4) == '.gif' || substr($file1, -4) == '.jpg') {
     
                    for ($i = 0; $i < count($elements); $i++) {
                      if ($elements[$i]==$file2)
                        $dchecked=" CHECKED ";
                    }
                    if (($nb) == 5){
                      echo "</td></tr><tr><td width='20%' height='45px'>";
                      $nb=0;
                    }
                    ?>
                     <table border="0"  height='20px' width="100%" cellspacing="0" cellpadding="0" align="center">
            <tr bgcolor="#ebebff">
              <td class="main"><?echo tep_draw_checkbox_field('/images/persoimg_'.$file2,'',$dchecked);?></td>
              <td  height='45px' class="main"><img src="<?=HTTP_CATALOG_SERVER.DIR_WS_HTTP_CATALOG."/images/persoimg/1/".$file?>"></td>
            </tr>
            </table></td><td width='20%'  height="45px">
            <?php 
            $nb=$nb+1;
                }
            }
            closedir($dh);
            if ($nb>1)
            echo "</td></tr>";
        }
    }





    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     $perso_str="";
                foreach($_POST as $index => $valeur)
                {
                  if (substr($index,0,9)=="/images/persoimg_"){
                  $perso_str .= substr($index,9).":";
                  }
                }
                $perso_str=substr($perso_str,0,-1);


    les fonctions :

    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
    // Output a selection field - alias function for tep_draw_checkbox_field() and tep_draw_radio_field()
      function tep_draw_selection_field($name, $type, $value = '', $checked = false, $parameters = '') {
     
        $selection = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"';
     
        if (tep_not_null($value)) $selection .= ' value="' . tep_output_string($value) . '"';
     
        if ( ($checked == true) || ( isset($GLOBALS[$name]) && is_string($GLOBALS[$name]) && ( ($GLOBALS[$name] == 'on') || (isset($value) && (stripslashes($GLOBALS[$name]) == $value)) ) ) ) {
          $selection .= ' CHECKED';
        }
     
        if (tep_not_null($parameters)) $selection .= ' ' . $parameters;
     
        $selection .= '>';
     
        return $selection;
      }

    et pour finir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Output a form checkbox field
      function tep_draw_checkbox_field($name, $value = '', $checked = false, $parameters = '') {
        return tep_draw_selection_field($name, 'checkbox', $value, $checked, $parameters);
      }

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     for ($i = 0; $i < count($elements); $i++) {
                      if ($elements[$i]==$file2)
                        $dchecked=" CHECKED ";
                    }
    C'est vilainement écrit, de plus le paramètre de ta fonction c'est TRUE/FALSE et d'ailleurs tu ne traites pas le cas FALSE.
    Tu peux utiliser simplement un_array :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dchecked = in_array($file2, $elements);
    Le problème vient peut être de $pInfo->perso
    Pour debuguer ton problème, contrôle tes résultats :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($elements as $value) {
        $comp = ($value != $file2) : ' != ' : ' == ';
        echo $file2 . $comp . $value;
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Aide fonction Php exec
    Par tartarus dans le forum Langage
    Réponses: 5
    Dernier message: 05/04/2013, 15h57
  2. aide fonction tri heapsort (création du tas)
    Par Invité dans le forum C
    Réponses: 6
    Dernier message: 24/11/2009, 01h27
  3. [FLASH MX] Problème flash et fonction mail() php
    Par proutcore dans le forum Flash
    Réponses: 7
    Dernier message: 21/05/2007, 13h21
  4. aide fonction math[racine,cos(),sin(),..]VB6
    Par am.adnane dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/12/2005, 19h40
  5. besoin d'aide fonction avec fichier (debutant)
    Par boby61 dans le forum Débuter
    Réponses: 9
    Dernier message: 14/03/2005, 12h22

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