[RESOLU] Récupérer une valeur avant envoie de formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Récupérer une valeur avant envoie de formulaire

Récupérer une valeur avant envoie de formulaire

par Fre3z69 » 10 avr. 2013, 18:49

Salutation,

Voici ce qui m’amène.

J'ai un système tout simple qui permet de créer une dépendance sur un objet.
On va prendre comme exemple un sous-menu sur un menu.

J'ai la liste des menu pouvant servir de dépendance pour mon sous-menu, et lors de la modification d'un sous-menu, je peux réattribuer un autre menu

Seulement, afin d'éviter des erreur css, lors de l'attribution d'une dépendance sur un menu, on supprime l'url de ce dernier.

J'aimerais en cas de modification d'un sous-menu, récupérer l'ID de l'ancien menu parent, afin de pouvoir traiter cela après la modification en BDD de la dépendance.

Comment faire pour récurer l'ancien Id sans passer par des sessions?

Voici la partie qui permet de lister les menus disponibles afin d'attribuer un parent sur le sous-menu (la dépendance).
    $menu1=$cnx->prepare('SELECT
     mp.men_id     AS men_id_parent,
     mp.men_name   AS men_name_parent,
     sm.men_id     AS id_sous_menu,
     sm.men_name  AS name_sous_menu,
     sm.men_url   AS url_sous_menu
    FROM t_menu_men mp
     INNER JOIN t_menu_men sm ON mp.men_id = sm.men_id_parent AND sm.men_type = :men_type
    WHERE mp.men_type IS NULL
    ORDER BY men_id_parent, id_sous_menu');
    $menu1->bindValue(':men_type',1,PDO::PARAM_INT);
    $menu1->execute();
    // 1 On ouvre le select;
    echo '<select name="men_id_parent">'.PHP_EOL;
        // 2 On crée un pointeur de vérification d'ouverture d'optgroup
        $bOptGroupOuvert = false;
        // 3 on crée un pointeur
        $idp = null;
        while(false !== ($result1=$menu1->fetch()))
        {
            if($aDatas['men_id_parent'] == $result1['id_sous_menu'])
            {
                $selected = 'selected="selected"';
            }
            else
            {
                $selected = '';
            }
            if($idp != $result1['men_id_parent'])
            {
                // On réinitialise le pointeur
                $idp = $result1['men_id_parent'];
                // On vérifie si on a un optgroup ouvert
                if(true === $bOptGroupOuvert)
                {
                    // si c'est le cas, on le ferme
                    echo '</optgroup>'.PHP_EOL;
                }
                // On ouvre un nouvel optgroup
                echo '<optgroup label="'.$result1['men_name_parent'].'">'.PHP_EOL;
                // On redefini $bOptGroupOuvert sur true afin de passer sur un nouvel optgroup
                $bOptGroupOuvert = true;
            }
            // On ajoute l'option.
            echo '<option '.$selected.' value="'.$result1['id_sous_menu'].'">'.$result1['name_sous_menu'].'</option>'.PHP_EOL;
        }
        // 4 On ferme le dernier optgroup
        echo '</optgroup>'.PHP_EOL;
    // 5 on ferme le select
    echo '</select>'.PHP_EOL;
    
    // on récupérer l'actuelle id du menu parent afin de faire un post traitement
Quelques explications:

$aDatas['men_id_parent'] viens d'un système qui permet en cas d'erreur de réattribuer cette valeur, afin de ne pas vider le formulaire et rendre chèvre l'utilisateur
il est passer en argument sur un fonction qui permet de créer le formulaire, mais ceci n'est pas le problème ça fonctionne très bien, et pour mon problème, on peux dire qu'il s'agit d'une variable défini au préalable (ce qui n'est pas faux)

En espérant que ma demande soit bien posée et bien compréhensive, je vous remercie

Cordialement