8797 sujets

Développement web côté serveur, CMS

Bonjour à tous,
Voila ma question étant jeune débutante en php/mysql.

Dans une première page j'enregistre des personnes avec un formulaire(nom,prenom,age,ville,date etc).

Ensuite dans une deuxième page je demande de m'afficher dans un tableau les données de phpmyadmin.

Enfin pour finir et clôturer mon programme je mets une checkbox sur chaque ligne de mon tableau!

CEPENDANT j'aimerais que si je coche 2 checkbox au hasard (ou plus) et bien dans une autre page elle m'affiche seulement les données de ces lignes qui ont été coché.
afin que je l'imprime.

C'est juste le passage avec les checkbox qui me bloque =)

Je ne sais pas comment lui dire d'allez chercher que les checkbox coché et de m'afficher les informations relatives à leur propre ligne (nom,prénom,age,ville, etc)

Voila mon code j'ai du oublié quelque chose


<!DOCTYPE html>
<?php
include('bdd.php');
?>
<html>
<head>
<title>Page infirmière RDV</title>
 
<link rel="stylesheet" type="text/css" href="style.css"/>
 
</head>
<body>
 
<h4>Liste des I.D.E</h4>
 
<div id="separator">
</div>
 
<div id="infirmiere">
 
<h4>Liste des Patients</h4>
 
<?php
 
$sql = 'SELECT nom,prenom,adresse,ville,cp,tel,cause,date,id_rdv FROM clients,rdv WHERE id_clients = clients.id AND date = CURRENT_DATE() ORDER BY ville';
 
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
 
$ur = 'Urine';
$sg = 'Sang';
$ly = 'lymph';
 
echo'<div id="contenuscrollbar2">';
echo'<table width="850" bgcolor="#000">'."\n";
 
echo '<tr>';
 
echo '<td bgcolor="#fff"><b><u>choix</u></b></td>';
echo '<td bgcolor="#fff"><b><u>ville</u></b></td>';
echo '<td bgcolor="#fff"><b><u>cp</u></b></td>';
echo '<td bgcolor="#fff"><b><u>nom</u></b></td>';
echo '<td bgcolor="#fff"><b><u>prenom</u></b></td>';
echo '<td bgcolor="#fff"><b><u>adresse</u></b></td>';
echo '<td bgcolor="#fff"><b><u>tel</u></b></td>';
echo '<td bgcolor="#fff"><b><u>cause</u></b></td>';
echo '<td bgcolor="#fff"><b><u>date</u></b></td>';
echo '<td bgcolor="#fff"><b><u>id_rdv</u></b></td>';
echo '<td bgcolor="#fff"><b><u>infirmier</u></b></td>';
 
echo '</tr>'."\n";
 
// on va scanner tous les tuples un par un
echo '<form action =infirmiere.php method = post />';
while ($data = mysql_fetch_array($req)) {
 
// on affiche les résultats
echo '<tr>';
 
echo '<td class="registered" bgcolor="#fff" align=center><input type="checkbox" name="coord[]" value="'.$data['nom'].'"></td>';
 
echo '<td class="registered" bgcolor="#fff" width="100">'.$data['ville'].'</td>';
echo '<td class="registered" bgcolor="#fff" width="50">'.$data['cp'].'</td>';
echo '<td class="registered" bgcolor="#fff" width="50">'.$data['nom'].'</td>';
echo '<td class="registered" bgcolor="#fff" width="50">'.$data['prenom'].'</td>';
echo '<td class="registered" bgcolor="#fff">'.$data['adresse'].'</td>';
echo '<td class="registered" bgcolor="#fff">'.$data['tel'].'</td>';
 
if($data['cause'] == 1){
echo '<td class="registered" bgcolor="#fff">'.$sg.'</td>';
$date = new DateTime($data['date']);
echo '<td class="registered" bgcolor="#fff">'.$date->format('d/m/Y').'</td>';
}
if($data['cause'] == 2){
echo '<td class="registered" bgcolor="#fff">'.$ur.'</td>';
$date = new DateTime($data['date']);
echo '<td class="registered" bgcolor="#fff">'.$date->format('d/m/Y').'</td>';
}
else{
echo '<td class="registered" bgcolor="#fff">'.$ly.'</td>';
$date = new DateTime($data['date']);
echo '<td class="registered" bgcolor="#fff">'.$date->format('d/m/Y').'</td>';
}
 
echo '<td class="registered" bgcolor="#fff">'.$data['id_rdv'].'</td>';
echo '</tr>'."\n";
}
 
echo '</form>';
echo '</table>'."\n";
echo'</div>';
 
mysql_free_result ($req);
mysql_close ();
?>
<form method="POST" action="infirmiere.php">
<strong>Voir les choix</strong><br/>
<input type="submit" value="choix" name="generer">
</form>
 
<?php
include('bdd.php');
 
if(isset($_POST['generer']))
{
if (isset($_POST['coord']))
{
foreach($_POST['coord'] as $personnesNOM)
{

$requete = "SELECT * FROM clients WHERE nom ='".(int)$personneNOM."' ";
 
}
}
 
}
?>
 
</div>
</body>
</html>



Merci d'avance à tous (ça doit vous paraitre super simple ^^)
Bise
Modifié par lola08 (16 Aug 2012 - 11:27)
Bonjour,
je vais commencer par les choses qui ne vont pas dans ce que tu as écrit :

1. Ferme tes balises PHP pour écrire du HTML.
ainsi :

$ur = 'Urine';
$sg = 'Sang';
$ly = 'lymph';
 ?>
<div id="contenuscrollbar2">
<table width="850" bgcolor="#000">
<!-- etc.... -->
<td class="registered" bgcolor="#fff" align=center><input type="checkbox" name="coord[]" value="<?=$data['nom']?>"></td>


2. Tu n'as pas le droit de mettre une balise <form> dans un table soit tu la mets au dessus de ton table soit dans un <td> dans ton cas mets la au dessus de ton table

3. les attributs HTML doivent être entre quote ou double quote :
<form action ="infirmiere.php" method ="post" />


4. Tu fermes ton form après l'avoir ouvert donc ton form ne contiendras rien
<form action ="infirmiere.php" method ="post" >


5. surement d'autres choses que je n'ai pas vu.

Pour ton problème :

Mets les id de tes patients dans tes checkbox au lieu du nom, car deux patients peuvent avoir le même nom. Ensuite tu as deux formulaires (<form>) là ou tu devrais (sauf erreur de ma part) en avoir qu'un. Le deuxième formulaire (celui que tu submit) ne contient pas les checkbox que tu souhaites récupérer et donc tu ne les récupères pas.

PS: penses à la fonction print_r($_POST) très pratique pour voir ce qui passe et ce qui ne passe pas.

Travail déjà les 5 points remontés, essaie de résoudre ton problème et reviens nous voir avec quelque chose de plus propre.

penses aussi à http://validator.w3.org/ car la plupart des erreurs que je vois ici viens de la structure HTML. Ce lien te permets de révéler les erreurs HTML.
Modifié par Su4p (16 Aug 2012 - 12:02)