Problème checkbox sur liste dynamique

- 31 mai 2005 à 12:06
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 3 juin 2005 à 15:01
Bonjour,



je suis bloqué sur un script, pourriez vous m'aider svp.



j'ai une page choiximp.php qui extrait de ma base etiquettes table produits

donc un champ id produit nom coloris etc...

à côté de chaque ligne je voudrais insérer une checkbox qui me permettrait d'extraire la ligne vers une page print.php

et dans ma page print.php les données se placent dans des étiquettes.

ce que je n'arrive pas à faire c'est faire en sorte que ma checkbox
soit incrémentée pour que la checkbox 1 soit en relation avec la ligne
de l'article id 1, la checkbox 2 id 2 etc...

deuxième problème comment récupérer les données dans print.php



Merci de votre aide, je suis allé voir sur plein de forum et rien. Vous êtes mon dernier espoir.

Je vous joins le code de choiximp.php



<?php require_once('../Connections/etiquettes.php'); ?>

<?php

$maxRows_etiquettes = 16;

$pageNum_etiquettes = 0;

if (isset($_GET['pageNum_etiquettes'])) {

$pageNum_etiquettes = $_GET['pageNum_etiquettes'];

}

$startRow_etiquettes = $pageNum_etiquettes * $maxRows_etiquettes;



mysql_select_db($database_etiquettes, $etiquettes);

$query_etiquettes = "SELECT * FROM produits";

$query_limit_etiquettes = sprintf("%s LIMIT %d, %d", $query_etiquettes, $startRow_etiquettes, $maxRows_etiquettes);

$etiquettes = mysql_query($query_limit_etiquettes, $etiquettes) or die(mysql_error());

$row_etiquettes = mysql_fetch_assoc($etiquettes);



if (isset($_GET['totalRows_etiquettes'])) {

$totalRows_etiquettes = $_GET['totalRows_etiquettes'];

} else {

$all_etiquettes = mysql_query($query_etiquettes);

$totalRows_etiquettes = mysql_num_rows($all_etiquettes);

}

$totalPages_etiquettes = ceil($totalRows_etiquettes/$maxRows_etiquettes)-1;

$id=$row_etiquettes['id'];

$nom=$row_etiquettes['nom'];



?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>Document sans titre</title>

<style type="text/css">

<!--

.Style1 {color: #FFFFFF}

.Style3 {font-size: 10px}

.Style4 {color: #FFFFFF; font-size: 18px; }

.Style5 {font-size: 18px}

-->

</style>

</head>





&nbsp;


<form name="form2" method="post" action="print.php">

id,

produit,

nom,

coloris,

cdt,

uvte,

dim,

code_frs,

prix ht,

prix ttc,

date,

imprimer
,

<?php do { ?>

----

<?php echo $row_etiquettes['id']; ?>,

<?php echo $row_etiquettes['produit'];
?>,

<?php echo $row_etiquettes['nom'];
?>,

<?php echo $row_etiquettes['coloris'];
?>,

<?php echo $row_etiquettes['cdt'];
?>,

<?php echo $row_etiquettes['uvte'];
?>,

<?php echo $row_etiquettes['dim'];
?>,

<?php echo $row_etiquettes['code_frs'];
?>,

<center><?php echo $row_etiquettes['prix
ht']; ?></center>

,

<center><?php echo $row_etiquettes['prix
ttc']; ?></center>

,

<?php echo $row_etiquettes['date'];
?>,

,

<?php } while ($row_etiquettes = mysql_fetch_assoc($etiquettes)); ?>










</form>

&nbsp;




</html>

<?php

mysql_free_result($etiquettes);

?>

22 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 mai 2005 à 12:47
hello,



le principe :





<form name="nom" method="post" action="page.php">

<?php

$requete = mysql_query ('SELECT nom, id FROM matable);

while ($resultat = mysql_fetch_array ($requete)) {

echo $resultat['nom'], ' =>
';

}

?>



</form>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 mai 2005 à 12:49
Et tu recuperes le (les) choix dans un tableau $_POST['selection'][]

par exemple $_POST['selection'][2] aura la valeur correspondant a l'id
du produit correspondant a cette case (a priori, le 3eme produit, donc
sans doute id 3).
0
satyan2 Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 2 juin 2005
31 mai 2005 à 14:06
ta première réponse fonctionne, par contre je n'arrive pas à récupérer la valeur dans ma page print .php

peux tu m'aider encore stp. Merci beaucoup en tout cas pour avoir prit la peine de me répondre.



Satyan
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 mai 2005 à 14:21
J'ai pris page.php moi comme exemple.
En fait, mettons que tu enregistres le formulaire que je t'ai donne dans form.php, et le code suivant dans page.php. Tu lances form.php.
Dans page.php, selon mon exemple, si tu fais :
<?php
if (isset ($_POST['submit']) && $_POST['submit'] === 'Choisir') {
if (is_array ($_POST['selection'])) {
foreach ($_POST['selection'] as $id) {
echo $id,
';
}
}
}
?>
Tu auras ta liste de choix.

foreach () sert a parcourir un tableau. Il boucle sur chaque enregistrement de ton tableau, et stocke le resultat dans une variable (ici : $id). Tu peux regarder la doc sur php.net pour plus de details.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
31 mai 2005 à 15:06
Salut,



juste un petit changement :



<form name="nom" method="post" action="page.php">



l'attribut "name" est déprécié en XHTML strict dans les formulaires ;-)



Si t'as besoin de faire appel au javascript tu utilises l'attribut id :



<form id="nom" method="post" action="page.php">



sinon tu mets rien, c'est plus propre :



<form method="post" action="page.php">



Voilà ;-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 mai 2005 à 15:13
Exact pour name dans les formulaires, j'avais oublie ca :-)
0
satyan2 Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 2 juin 2005
31 mai 2005 à 15:27
le résultat me donne $id

mais je ne trouve pas l'erreur de syntaxe

peux tu m'aider ?
0
satyan2 Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 2 juin 2005
31 mai 2005 à 15:28
le résultat me donne $id

mais je ne trouve pas l'erreur de syntaxe

peux tu m'aider ?
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 mai 2005 à 15:53
t#as ecrit quoi ? A mon avis un truc de ce genre : echo '$id'; non...?
0
satyan2 Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 2 juin 2005
31 mai 2005 à 16:52
j'ai écris ça

<?php require_once('../Connections/etiquettes.php'); ?>

<?

if (isset ($_POST['submit']) && $_POST['submit'] === 'Choisir') {

if (is_array ($_POST['selection'])) {

foreach ($_POST['selection'] as $id) {

echo '$id,
';

}

}

}

?>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 mai 2005 à 17:20
C'est bien ce que je disais. Les variables php ne sont pas interpretees si elles sont entre de simples quotes.
ecris ca :

echo $id, '
';
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 mai 2005 à 17:20
Mais c'est ma faute j'avais oublie un des quotes dans mon coee ;-)
0
satyan2 Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 2 juin 2005
31 mai 2005 à 18:06
alors que dois je mettre pour ne pas avoir comme résultat $id ?
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 mai 2005 à 18:08
Je viens de le l'ecrire!
0
satyan2 Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 2 juin 2005
1 juin 2005 à 18:03
bon ça fonctionne mais je voudrais maintenant placer les valeurs reçues dans un tableau, hors elles arrivent toutes à la suite.

1marazzitest (c'est tout collé)

comment faire pour recevoir les valeurs séparées.



1

marazzi

bleu



afin que dans mon tableau je puisse me placer et faire echo $id






echo $nom






echo $coloris



en tout cas merci de ton aide j'avance et suis près du but.
0
satyan2 Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 2 juin 2005
2 juin 2005 à 14:13
Bonjour,



Peux tu m'aider malalam ? Merci d'avance.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 juin 2005 à 18:25
ah celle-la...



Ok je regarde demain...la je n'ai plus le temps.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 juin 2005 à 13:28
Dis, tu permets que je vive, lol...??



Bon, tu as fait comment pour tout recuperer colle ? Moi je ne t'ai
montre qu'avec l'id. Montre moi ce que tu as fait pour nom et coloris.
0
satyan2 Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 2 juin 2005
3 juin 2005 à 13:42
désolé de t'avoir pressé, ce n'était pas le but...



voilà le code

<?php

$requete = mysql_query ('SELECT nom, id, produit, coloris, uvte, cdt, prix_ht, prix_ttc, date FROM produits');

while ($resultat = mysql_fetch_array ($requete)) {

echo $resultat['nom'], $resultat['coloris'], '=> ,$resultat['id'],
$resultat['nom'], $resultat['produit'], $resultat['coloris'],
$resultat['cdt'], $resultat['uvte'], $resultat['prixht'],
$resultat['prixttc'], $resultat['date'],'" />
';

}

?>



Merci encore de ton aide.



Satyan
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 juin 2005 à 13:54
Ah ok!

Alors de deux choses l'une :
en general, ce que l'on fait avec des checkboxes :
on ne met que l'id du produit dans la valeur, pas tout, comme tu l'as fait.

Ensuite, pour recuperer le reste, on refait une requete avec ce que l'on a recuperer de la checkbox, comme je te l'ai montre.
Bref, ne met que $resultat['id'], et ensuite, tu recuperes ca comme je te l'ai montre, et quand tu veux recuperer aussi le nom, etc...tu fais une requete sur ta base avec la clause WHERE (par exemple, WHERE id_produit=$id)

Oki ?
0
Rejoignez-nous