Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour à tous, voici mon pb
- je recupere les valeur d'une table SQL et les mets sous forme de tableau. (jusqu'ici tout va bien)
- J'essai de mettre une checkbox en face de chaque ligne, afin de permettre à un utilisateur de selectionner une ligne, et copié l'ID de cette ligne dans une autre table, via une methode post .
voici mon premier formulaire (menu.php)
?>
</table>
<p>
<input type="submit" value="Envoyer" name="Envoyer">
</form>
voici mon second formulaire (menu2.php)
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('resto',$db) or die('Erreur de selection '.mysql_error());
foreach ($tadid as $id)
{
$query=sprintf("INSERT INTO platsdujour(id, id_site) VALUES('','$id')"
mysql_query($query);
}
// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';
?>
or il me copie dans la table 'platsdujour' "ARRAY"
qu'en penses vous ?
Hors ligne
tu parles de name='choix[]' ?
j'avoue ne pas trouver mon erreur
Hors ligne
Bonjour,
Effectivement c'est bien ce "choix[]" le problème. Le "[]" indique un tableau (array), donc soit tu le retires simplement (mais en ce cas transformer ta checkbox en bouton radio serait peut-être une bonne idée), soit tu le laisses (si par exemple tu veux que l'on puisse sélectionner plusieurs lignes à la fois) mais il faut rajouter un traitement php de $_POST['choix'] pour récupérer chaque valeur du tableau.
Hors ligne
C'est tout a fait ça, j'aimerais pouvoir selectionner plusieurs lignes a la fois.
Hors ligne
Et bien c'est déjà le cas : tu sélectionne plusieurs lignes, toutes les valeurs sont stockés sous la forme d'un array (les tableaux php) et envoyées dans le $_POST. Simplement au lieu d'envoyer les infos directement comme tu dois le faire il faut les récupérer dans le script php.
Voilà qui devrais te mettre sur la voie : http://www.phpdebutant.org/article11.php
Hors ligne
voila ce que j'ai fait pour le moment :
if(isset($_POST['choix']))
{
foreach($_POST['choix'] as $index => $val)
{
//affichage des elements du tableau
echo $val ;
}
}
?>
qu'en pensez vous ?
Dernière modification par nopnop (18-05-2010 14:03:47)
Hors ligne
En fait ton premier code était bon, il y avait juste une ptite erreur au niveau des variables $id et $tadid que tu devrais maintenant pouvoir trouver.
Mais c'est une bonne idée d'utiliser isset, pour que le code qui est juste au-dessus fonctionne il n'y a qu'à retirer ce qui sert à rien et rajouter la connexion à la bdd et l'envoi de requête.
Hors ligne
Voici donc ce que j'ai fait :
if(isset($_POST['choix']))
{
foreach($_POST['choix'] as $index => $val)
{
//affichage des elements du tableau
$sql = "INSERT INTO platsdujour(id, jour, mois, annee, id_site) VALUES('','$jour','$mois','$annee','$val')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
echo 'Vos infos on été ajoutées.';
}
}
par contre je ne vois toujours pas l'erreur dans mon premier post
Hors ligne
Pour ton premier post c'était simplement
Pour celui que tu viens de mettre et bien... qu'est-ce que tu veux que je te dise ? Si c'est "est-ce que c'est un code correct" je dirais que je ne vois pas d'erreur apparente sur ce bout de code, juste que
ne sert plus à rien, que
serait plus simple ainsi
et que tu peux rendre ta requete SQL plus correcte comme ça (je suppose que ton id est en autoincrement) :
Après si c'est "pourquoi ça ne marche pas" et bien je ne vois pas où tu as défini tes variables $jour,$mois,$annee et je ne vois pas non plus ta connection à la bdd (mysql_connect et mysql_select_db). Mais si c'est ça je te conseille d'aller lire quelques tutos supplémentaires sur php, les variables et les interactions avec la base de donnée (si c'est pas ça je m'en excuse par avance).
Hors ligne
Pages :: 1