8768 sujets

Développement web côté serveur, CMS

Hello.
Voici les données.

J'ai un formulaire avec une dizaine de champs mais on va s'arreter aux 2 premiers.
Ce sont des champs avec liste de choix pour utilisateur.
Le premier champ est une famille d'objet. ex : collections et informatique.
Le deuxieme champs est variable dans ses liste en fonction de la valeur choisie du premier champ.

exemple si champ 1 = collection, alors champ 2 devient livre. Si le champ 1 = informatique le champ 2 devient ordinateur.

Voici mes lignes de codes.

$famille = $_POST['ninja_forms_field_40'];

if ('ninja_forms_field_40' == 'collectart'); 
$category = $_POST['ninja_forms_field_54'];
(a ce niveau tout est ok mon mail me renvoie[i] Famille=collectart[/i] et category=livre)

if ('ninja_forms_field_40' == 'computing');
$category = $_POST['ninja_forms_field_53'];
(a ce niveau tout est ok mon mail me renvoie famille=computing et category=ordinateur)

par contre si je retourne ds mon formulaire, que je rafraichis la page pour à nouveau encoder, la categorie livre a disparu.

Dernière info j'ai fait le test avec tous les champs, et la nouvelle instruction efface la valeur de la categorie précédente...

Help
Patrick

Si nécessaire je peux "ouvrir" le site pour mieux comprendre...
Modifié par patwil (16 Oct 2015 - 23:57)
Bonjour Patwil, bienvenue sur Alsacréations

Est-ce que dans le value de ton formulaire tu test la présence du POST et l'affiche en conséquence ?

Ex :
<input type="text" name="test" value="<?php if(isset($_POST['test'])) echo $_POST['test']; ?>>
ton navigateur ne garde rien en mémoire pour ce qui est des form. si tu veux des variable dynamique stocker dans ton navigateur penche toi vers les sessionStorage / localStorage en javascript.
Bonjour,

Ton test...
$famille = $_POST['ninja_forms_field_40'];
if ('ninja_forms_field_40' == 'collectart');
$category = $_POST['ninja_forms_field_54'];

Ça ne doit pas bien fonctionner !

- Dans ton if, tu testes si deux chaines de caractère différentes sont identiques Smiley biggol
- Et tu arrêtes ton if avec un point-virgule (donc je ne sais pas trop comment php réagit)

Donc je pense que tu voulais probablement écrire :
$famille = $_POST['ninja_forms_field_40'];
if ($famille == 'collectart') $category = $_POST['ninja_forms_field_54'];

// Ou plus proprement
if ($famille == 'collectart') {
  $category = $_POST['ninja_forms_field_54'];
}