Page 1 sur 1
champs[1]
Posté : 23 juil. 2006, 23:22
par dunbar
Bonsoir,
La meilleurs manière de nommé des champs de formulaire est laquelle?
Je vois souvant ceci "nom_du_champs[]" je me demande pourquoi le []??
Quelle est l'avantage pour la récupération des donnée?
Pourquoi champs[1] et mieux que champ_1 ?
Merci
Posté : 24 juil. 2006, 00:10
par @rthur
Bonsoir,
Les crochets indiquent l'utilisation d'un tableau d'éléments. En l'occurence, toto[1] désigne le 2ième élément "toto" (car un tableau commence à 0).
Après à toi de voir le nom qui te parrait le plus simple/logique dans ton cas.
Si tu as +ieus éléments similaires, un tableau peut être relativement pratique sinon ça n'a que peu d'intérêt
Posté : 24 juil. 2006, 02:42
par HanX
dans un formulaire c'est bien d'utiliser un tableau avec l'utilisation des checkbox... tu stockes tout, un coup de foreach et voilà le résultat... ça sert à économiser pas mal de lignes de code
genre
fonction($var1);
fonction($var2);
fonction($var3);
...
fonction($varX);
par
foreach($var as $key => $value) {
fonction($value);
}
Posté : 24 juil. 2006, 08:37
par dunbar
Bonjour,
Merci pour vos réponse, donc imaginont qe je suis malin et que j'ai compris cela donnerais:
exemple je nomme mes champs (nom[1]) , (nom[2]) , (nom[3]) , etc...
Et il me suffirais de faire un truc du genre
.mysql_escape_string($_POST(nom[]),
Au lieu de :
mysql_escape_string($_POST['nom_1'] "','" .mysql_escape_string($_POST['nom_2'] "','" etc....
C'est bien ça ?

Posté : 24 juil. 2006, 09:54
par Ryle
Non, cela ne te dispense pas de traiter chaque chaine.. l'avantage, c'est juste de récupérer les données sous la forme d'un tableau (éventuellement indexé) plutôt que dans chaque valeur dans une variable.
Typiquement dans le cas de cases à cocher comme l'a signalé Hanx, plutôt que de tester chaque variable $_POST['var_1'], $_POST['var_2'] ... $_POST['var_74'], on se contente de récupérer $_POST['var'] (si chaque case a pour nom "var[]"), sachant que cette variable est un tableau contenant les valeurs des cases qui ont été cochées.
On peut ainsi grandement simplifier le code en faisant une boucle sur les éléments du tableau sans avoir à se soucier de savoir combien il y a de cases, de tester si $_POST['var_26'] est défini ou non pour récupérer sa valeur, etc.
Posté : 24 juil. 2006, 11:07
par HanX
Bonjour,
.mysql_escape_string($_POST(nom[]),
Au lieu de :
mysql_escape_string($_POST['nom_1'] "','" .mysql_escape_string($_POST['nom_2'] "','" etc....
C'est bien ça ?

NOOOOOOOOON surtout pas !
$nom[] << défini signifie l'élément suivant du tableau
exemple :
$nom[1]='arbre';
$nom[2]='fleur';
$nom[3]='champignon';
$nom[]='fruit'; //se place en $nom[4]
si tu veux faire une manipulation totale sur un tableau, utilises $nom... il faut voir la doc de la fonction si elle permet de traiter des tableaux. Mais si tu ne veux pas avoir de problêmes, tu fais un foreach...
foreach($_POST as $key => $value) {
$_POST[$key]=mysql_escape_string($value);
}
Posté : 24 juil. 2006, 12:56
par dunbar
Salut,
Génial et merci, juste une question

pourquoi dire tableau concernant [] ????
Et pour être certain d'avoir compris, j'ai un formulaire avec les champs
nom_1 nom_2 nom_3
Et pour bien faire je devrais les nommé
$nom[1], $nom[2], $nom[3]
et pour ma requête INSERT
$sql="INSERT INTO test (nom,xxxxx,xxxxx,xxxxx,) VALUES ('".mysql_escape_string($_POST $nom[1])."','".mysql_escape_string($_POST $nom[2])."','".mysql_escape_string($_POST $nom[3] etc......
C'est bien ça ?
Posté : 24 juil. 2006, 22:18
par @rthur
$_POST $nom[3]
C'est bien ça ?
Oui, en faisant un petit effort sur la syntaxe

, mais je pense que tu as effectivement compris le principe

Posté : 24 juil. 2006, 22:21
par dunbar
$_POST $nom[3]
C'est bien ça ?
Oui, en faisant un petit effort sur la syntaxe

, mais je pense que tu as effectivement compris le principe

Un petit seulement ? tu est sympa
Le principe oui je pense avoir compris, MAIS je ne trouve cependant pas la différence avec :
($_POST['nom_1']
Sorry hein
Merci pour la patience

Posté : 24 juil. 2006, 23:57
par @rthur
$_POST['nom'][3]
car tu récupère le 3ème élément du tableau 'nom', lui même passé en POST

Posté : 29 juil. 2006, 15:44
par dunbar
$_POST['nom'][3]
car tu récupère le 3ème élément du tableau 'nom', lui même passé en POST

Bon ......
Mais juste pour être certain de comprendre!!!!
Exemple:
mes champs nommé nom_1,nom_2 etc se récupére
INSERT nom_1,nom_2 etc....
Mes champs nommé nom[1], nom[2], etc.... se récupére
INSERT POST_$nom[], et là il récupére les nom[1] et nom[2] j'ai bien comprid
a+
[/php]