Bonjour, voila ayant suivi le tutoriel pour créer un portfolio de A à Z en PHP "BRUT" dans la 4ème partie je me retrouve face a un probleme avec la fonction select dans form.php

  function select($id, $options = array()){
    $return = "<select class='form-control' id='$id' name='$id'>";
     foreach($options as $k => $v){
        $selected = '';
        if(isset($_POST[$id]) && $k == $_POST[$id]){
            $selected = ' selected="selected"';
        }
        $return .= "<option value='$k' $selected>$v</option>";
    }
    $return .= '</select>';
    return $return;
}

le probleme est du au fait que la catégorie associé a la réalisation n'est pas récuperée lors de sa (ré)edition (quand on clique sur une réalisation déjà existante bien sur )

Que faire ?

Merci d'avance

PS : je précise que je suis en ligne chez un hébergeur (shost.ca)

14 réponses


betaWeb
Réponse acceptée

Beh voilà donc récupères ton paramètre dans ton URL et je pense que ça marchera ;)

Salut,

Tu peux être plus précis stp ? Et est-ce que tu as fait toute la formation ? Car il se peut que la solution soit donnée plus loin dans la vidéo.

Aerrow
Auteur

Merci pour ta réponse betaWeb mais en revisionnant la vidéo je remarque à 12:45 de la vidéo, que la fonction se met à fonctionner de suite (grafikart lui même le dit ^^)
quand tu dis plus précis quel genre de détails voudrait tu savoir ?
Et non j'en suis justement a cette partie du tutoriel où je bloque un peu

Eh beh continues le tuto alors.
"le probleme est du au fait que la catégorie associé a la réalisation n'est pas récuperée lors de sa (ré)edition (quand on clique sur une réalisation déjà existante bien sur )" << pas compris.

Aerrow
Auteur

je reformule autrement, exemple : je crée une réalisation (nom + slug + content + la catégorie) elle est publié (jusque la ca devrait aller)
ensuite, une redirection se fait, on se retrouve en face d'une page qui logiquement repertorie toutes les réalisations enregistrées (la normalement ca devrait toujours aller) ensuite, chaque réalisation est "équipée" d'un bouton "editer" qui permet de le modifier et c'est a ce moment que normalement ce qu'on à entré comme données dans les differents champs se réaffiche surtout le champ select qui lui se charge exclusivment de récupérer la valeur choisi lors de l'enregistrement fait auparavent

C'est simplement que la condition ci-dessous n'est pas remplie. Tu débug tes variables ?

if(isset($_POST[$id]) && $k == $_POST[$id]){
            $selected = ' selected="selected"';
        }
Aerrow
Auteur

Je peux toujours retester avec un die mais en théorie il ne devrait pas réagir

Beh pourquoi il ne devrait pas réagir ? Et d'ailleurs, ton id, pourquoi le récupères-tu en POST ? Il doit être dans l'URL et donc en GET normalement.

Aerrow
Auteur

et non parce-que le formulaire qui lui est associé envoie tout en post (néanmoins je peut essayer)

Oui, lors de la soumission, mais lorque tu veux éditer ou afficher un article, l'ID est récupéré en GET.

Aerrow
Auteur

ah oui exact on le voit dans l'URL (apres le ?)

Aerrow
Auteur

Bizarrement en local ca a fonctionné mais en ligne ca n'est pas passé

Ah beh ça après c'est à toi de déboguer de ton côté.

Aerrow
Auteur

encore merci pour ton aide