Récupérer une valeur avant envoie de formulaire
Posté : 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).
$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
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