FORMULAIRE + LISTE MYSQL [RESOLU] - PHP - Programmation
Marsh Posté le 10-10-2014 à 10:21:33
J'aurais justement parié sur une histoire de pb d'échappement de caractères (apostrophe, guillemet..).
Si tu essayes d'insérer en bd un nom de désignation sans caractère "particulier", genre "Produit", ça marche ?
Marsh Posté le 10-10-2014 à 10:42:57
Oui, l'affichage ce fait dans mon déroulé via ma BD mais sur quand j'envoie le POST le champs de la BD ne se remplis pas....
Marsh Posté le 10-10-2014 à 10:53:12
Pardon...Mal répondu...
'<option type="text" name="nom" value="Produit">'.$donnees['DESIGNATION'].'</option>';
Ne s'incorpore pas dans la base....
Marsh Posté le 10-10-2014 à 11:20:05
Je crois que j'ai compris ton pb : tu sais pas faire du html
<select name="nom">
<option value="Produit1">xxxxx</option>
<option value="Produit2">yyyyy</option>
</select>
Edit : pour rappel, le name comme le id est un attribut ayant une valeur généralement unique sur la page html (je dis "généralement" car y'a une exception pour les boutons radio).
Marsh Posté le 10-10-2014 à 11:46:18
Je ne saisi pas très bien...
La liste est affichée avec un ARRAY....dans le SELECT
Pourquoi faire un SELECT avec des VALUE comme une liste composée manuellement.
Dans mon cas
{
echo
'<option type="text" name="nom" value=" '.$donnees['DESIGNATION'].' ">'.$donnees['DESIGNATION'].'</option>';
}
Dans mon cas value=" '.$donnees['DESIGNATION'].' doit "normalement" être dans le name="nom"
Je ne saisi pas très bien...
Marsh Posté le 10-10-2014 à 11:53:35
Le point important était de te faire comprendre que l'attribut "name" est à mettre sur le <select> et non sur le <option>.
A tous les coups, t'as même pas fait un var_dump($_POST); pour savoir ce que tu récupérais quand tu postais ton formulaire. Car si c'était le cas, t'aurais vu que tu récupérais rien (ou en tout cas, pas ce que tu attendais).
Marsh Posté le 10-10-2014 à 12:16:32
T'as raison...il faut que je révise mon HTML
Effectivement faute grossière...
Merci pour ton éclairage.
Marsh Posté le 10-10-2014 à 13:35:55
Pas de quoi
Marsh Posté le 11-10-2014 à 17:36:24
rufo a écrit : Le point important était de te faire comprendre que l'attribut "name" est à mettre sur le <select> et non sur le <option>. |
salut
+1 var_dump($_POST);
c'est la base pour débugguer
et toujours vérifier les paramètres (post ou get)
avant de commencer ton traitement
par exemple :
<?php
if (!isset ($_POST["nom_du_parametre"]))
{
die ("paramètre nom_du_parametre non setté" );
}
//connexion au serveur
$cnx = ......
Marsh Posté le 10-10-2014 à 08:06:40
Bonjour,
J’ai un petit souci sur un formulaire, je récupère les lignes d’une table afin de remplir ma liste sur un formulaire ; jusque-là tout marche sinon que sur l’envoi, ce champ ne se remplit pas… sur ma base MYSQL
J’envoie $donnees['DESIGNATION'] ------- name="nom"
SUR MON FORMULAIRE LA LISTE S’AFFICHE BIEN
<select>
<?php
// on récupère tout le contenu de la table
$reponse = mysql_query("SELECT * FROM table " );
while ($donnees = mysql_fetch_array($reponse))
{
echo
'<option type="text" name="nom" value=" '.$donnees['DESIGNATION'].' ">'.$donnees['DESIGNATION'].'</option>';
}
?>
</select>
MA LISTE APPARAIT BIEN SUR MON FORMULAIRE
CÔTE ENVOI
<?php
//connexion au serveur
$cnx = mysql_connect("xxxxxx","xxxxxx","xxxxxx" );
//Selection de la base de donnée
$db = mysql_select_db("xxxxxx" );
//Recupetion des valeurs
//nom
if (isset ($_POST['nom']) AND $_POST['nom'] !=="" ) $nom=mysql_real_escape_string($_POST['nom']); else $nom="";
//création de la requête SQL:
$sql = "INSERT INTO table
SET nom= '$nom'";
Bon, je vous évite la litanie et la clôture du reste de mon formulaire, bien sûr tout le reste de mon formulaire est remplis, donc correct….
J’ai essayé dans mon echo de changer mes apostrophes et guillemets, sans succès…
Merci pour votre aide
Message édité par hogz le 10-10-2014 à 12:17:53