Problème checkbox sur liste dynamique

Signaler
-
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
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

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
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>
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
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).
Messages postés
12
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

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
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
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.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
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>
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Exact pour name dans les formulaires, j'avais oublie ca :-)
Messages postés
12
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

le résultat me donne $id

mais je ne trouve pas l'erreur de syntaxe

peux tu m'aider ?
Messages postés
12
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

le résultat me donne $id

mais je ne trouve pas l'erreur de syntaxe

peux tu m'aider ?
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
t#as ecrit quoi ? A mon avis un truc de ce genre : echo '$id'; non...?
Messages postés
12
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

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,
';

}

}

}

?>
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
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, '
';
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Mais c'est ma faute j'avais oublie un des quotes dans mon coee ;-)
Messages postés
12
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

alors que dois je mettre pour ne pas avoir comme résultat $id ?
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Je viens de le l'ecrire!
Messages postés
12
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

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.
Messages postés
12
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

Bonjour,



Peux tu m'aider malalam ? Merci d'avance.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
ah celle-la...



Ok je regarde demain...la je n'ai plus le temps.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
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.
Messages postés
12
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
2 juin 2005

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
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
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 ?