Problème avec les checkbox
J'ai un gros soucis je vous explique.
voila donc j'ai un tableau qui se construit en php
a chaque fois qu'on entre un arret chaine une ligne du tableau se rajoute.
J'ai voulu prévoir une collone de checkbox pour que quand l'on coche un checkbox on puisse modifier ou supprimmer la ligne mais je n'arrive pas à récupérer déja le checkbox
je vous met le tableau histoire que ce soit plus clair
echo "<tr>";
echo "<td class='table-ligne1-centre' width='100'> <input type='checkbox' name='choix' value=1> </td>";
echo "<td class='table-ligne1-centre' width='100'>$TYPE</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEBUT</td>";
echo "<td class='table-ligne1-centre' width='100'>$FIN</td>";
echo "<td class='table-ligne1-centre' width='100'>$CONSTAT</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEMANDE</td>";
echo "<td class='table-ligne1-centre' width='100'>$CAUSE</td>";
echo "<td class='table-ligne1-centre' width='100'>$INFO</td>";
echo "<td class='table-ligne1-centre' width='100'>$IMPUTATION</td>";
echo "</tr>";
Si vous pourriez m'éclairer svp
je vous remercierais jamais assez
Configuration: Windows 2003 Internet Explorer 7.0
25 réponses
Un tableau généré dynamiquement en PHP vise à ajouter une colonne de checkbox pour permettre de modifier ou supprimer des lignes, mais la récupération des valeurs via POST ne fonctionne pas correctement. Plusieurs interventions recommandent d'écrire l'input côté PHP avec des noms de champ uniques (par exemple check ou choixX), d'éviter de mêler PHP et JavaScript dans onclick et de lire $_POST côté serveur. D'autres précisent qu'il faut générer chaque ligne avec une valeur d'identifiant (value) distincte et récupérer cet identifiant via $_POST pour cibler la modification ou suppression. En cas de complication, il peut être utile de tester le code HTML généré et de clarifier la logique entre affichage PHP et interactions JavaScript pour éviter des conflits de scope.
-
salut freto je ne sais pas si tu te souviens de mon problème mais il est toujours réel
Et je n'arrive pas a m'en débarrasser srai tu pret a me reconseillé??
tien moi au courant -
les deux^^
-
Ca ne fonctionne pas non plus
-
Et justement c'est obligé?
Je veux dire d'utiliser la méthode get car justement pas trop sécurisé....-
Bah ...dans ton précédent cas, oui car tu utilisaias un bouton en dehors d'un formulaire. Mais je vois que tu travaille aussi avec une session. Alors pourquoi ne pas instancier une variable de session, que tu puisse utiliser dans ton pop up? cela irait beaucoup plus vite.
Tiens, d'ailleurs sa me donne une idée pour mon projet ^^ merci bien
-
-
Bah oui sa change énormément.
Petits rappels:
La méthode GET consiste a faire passer des variables par l'url de la page, sous la forme: url?id=valeur
Méthode déconseillée, sauf dans certains cas, car très peu sécurisé.
Lorsqu'une variable est passée en GET, en php, on la récupère via $_GET['id'].
Méthode POST:
utilisée généralement pour des formulaires, la méthode POST envoie les variables par l'en tête de la page, et peuvent être récupérée par PHP via $_POST['id']. Plus sécurisée, car cela se fait de manière transparente pour l'utilisateur.
Voilaaaa, donc dans ta page il faut que tu utilise $_GET['id'] pour récupérer ta variable. -
Je passe pas par la méthode get mais par post est ce que ca change quelque chose???
Car effectivement dans formulaire.php (qui est le popup)
<?php
session_start();
require('Connexion.php');
?>
<html>
<!##########################################################################################################################>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Arrêt chaîne</title>
<link rel="stylesheet" media="screen" type="text/css" title="identification" href="Application.css">
</head>
<!##########################################################################################################################>
<form method="post" action="Modif_et_Suppr.php">
<body>
<!------------------ Bannière ------------------>
<div id="ban3"> </div>
<!-- Question -->
<?php
$_SESSION['choix'] = $_POST['choix'];
if ($_POST['Supprimer'] == 'Supprimer' && isset($_POST['choix']))
{
echo "<br>";
echo "<br>";
echo "Etes vous sûr de vouloir supprimer l'arrêt chaîne sélectionné ?";
echo "<br>";
echo "<br>";
echo "<input type=\"submit\" value='Oui' onClick='self.close()' name=\"Oui\">";
echo "<input type=\"submit\" value='Non' onClick='self.close()' name=\"Non\">";
echo "<br>";
echo "<br>";
}
elseif ($_POST['Modifier'] == 'Modifier' && isset($_POST['choix']))
{
//--------------- le traitement à faire pour une checkbox cochée ---------------//
$id = $_POST['choix'];
$_SESSION['id'] = $id;
$sql = " SELECT * FROM ARRET_CHAINE WHERE NUMERO_ARRET_CHAINE = $id" ;
$req = odbc_exec($conn,$sql) or die('Erreur SQL : <br />'.$sql);
while (odbc_fetch_row($req))
{
$TYPE=odbc_result($req,"TYPE");
$DEBUT=odbc_result($req,"HEURE_DEBUT");
$FIN=odbc_result($req,"HEURE_FIN");
$CONSTAT=odbc_result($req,"CONSTAT");
$DEMANDE=odbc_result($req,"DEMANDE");
$CAUSE=odbc_result($req,"CAUSE");
$INFO=odbc_result($req,"COMPLEMENT_INFORMATION");
$IMPUTATION=odbc_result($req,"IMPUTATION");
}
$sql = "SELECT DESIGNATION FROM TYPE";
$req = odbc_exec($conn,$sql) or die('Erreur SQL : <br />'.$sql);
echo "<select name= 'TYPE' >";
while($data = odbc_fetch_array($req))
{
echo "\n <option value=\"".$data["DESIGNATION"]."\" selected>".$data["DESIGNATION"]."</option>\n\n";
}
if (isset($TYPE))
{
echo "<option value='$TYPE' selected='selected'>$TYPE</option>";
echo '</select>';
}
else
{
echo "<option value='type' selected='selected'>Type</option>";
echo '</select>';
}
?>
<!------------------ Saisie Dates ------------------>
<br><br><br>
Heure début :
<input name="HEURE_DEBUT" value="<?php
if (isset($DEBUT))
{
echo $DEBUT;
}
?>" maxlength="8" size="6" type="time">
Heure fin :
<input name="HEURE_FIN" value="<?php
if (isset($FIN))
{
echo $FIN;
}
?>" maxlength="8" size="6" type="time">
<!------------------ Choix CONSTAT ------------------>
<br><br><br>
<?php
$sql = "SELECT DESIGNATION FROM CONSTAT";
$req = odbc_exec($conn,$sql) or die('Erreur SQL : <br />'.$sql);
echo '<select name="CONSTAT" >';
while($data = odbc_fetch_array($req))
{
echo "\n <option value=\"".$data["DESIGNATION"]."\" selected>".$data["DESIGNATION"]."</option>\n\n";
}
if (isset($CONSTAT))
{
echo "<option value='$CONSTAT' selected='selected'>$CONSTAT</option>";
echo '</select>';
}
else
{
echo "<option value='constat' selected='selected'>Constat</option>";
echo '</select>';
}
?>
<!------------------ Choix DEMANDE ------------------>
<br><br>
<?php
$sql = "SELECT DESIGNATION FROM DEMANDE";
$req = odbc_exec($conn,$sql) or die('Erreur SQL : <br />'.$sql);
echo '<select name="DEMANDE" >';
while($data = odbc_fetch_array($req))
{
echo "\n <option value=\"".$data["DESIGNATION"]."\" selected>".$data["DESIGNATION"]."</option>\n\n";
}
if (isset($DEMANDE))
{
echo "<option value='$DEMANDE' selected='selected'>$DEMANDE</option>";
echo '</select>';
}
else
{
echo "<option value='demande' selected='selected'>Demande</option>";
echo '</select>';
}
?>
<!------------------ Choix CAUSE ------------------>
<br><br>
<?php
$sql = "SELECT DESIGNATION FROM CAUSE";
$req = odbc_exec($conn,$sql) or die('Erreur SQL : <br />'.$sql);
echo '<select name="CAUSE" >';
while($data = odbc_fetch_array($req))
{
echo "\n <option value=\"".$data["DESIGNATION"]."\" selected>".$data["DESIGNATION"]."</option>\n\n";
}
if (isset($CAUSE))
{
echo "<option value='$CAUSE' selected='selected'>$CAUSE</option>";
echo '</select>';
}
else
{
echo "<option value='cause' selected='selected'>Cause</option>";
echo '</select>';
}
?>
<!------------------ Saisie complement d'information------------------>
<br><br><br><br>
Complément d'information :
<input name="COMPLEMENT" value="<?php
if (isset($INFO))
{
echo $INFO;
}
?>" maxlength="50" size="50" type="text">
<!------------------ Choix IMPUTATION ------------------>
<br><br><br>
<?php
$sql = "SELECT DESIGNATION FROM IMPUTATION";
$req = odbc_exec($conn,$sql) or die('Erreur SQL : <br />'.$sql);
echo '<select name="IMPUTATION" >';
while($data = odbc_fetch_array($req))
{
echo "\n <option value=\"".$data["DESIGNATION"]."\" selected>".$data["DESIGNATION"]."</option>\n\n";
}
if (isset($IMPUTATION))
{
echo "<option value='$IMPUTATION' selected='selected'>$IMPUTATION</option>";
echo '</select>';
}
else
{
echo "<option value='imputation' selected='selected'>Imputation</option>";
echo '</select>';
}
/*------------------ Boutton ------------------*/
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
echo "<div style=\"text-align: center;\">";
echo "<input value=\"Valider\" onclick=\"self.close()\" name=\"button\" type=\"submit\">";
}
else
{
echo "Vous n'avez pas cochez d'arrêt chaîne";
}
?>
</form>
</body>
</html> -
vous ne voyez pas je bloque vraiment
-
Heu donc le pop up s'ouvre c'est dans le pop up que sa ne fonctionne pas si j'ai bien compris.
Si tu appelle ton pop up avec la méthode GET (.php?id=quelquechose), il te faut traiter ce GET dans le pop up.
Donc ton code doit ressembler dans le popup a quelque chose du style:if (isset($_GET['id'])){ //code a faire avec ton popup }else{ //code a faire si ta variable n'est pas définie }
-
-
Alors
Quand je clic sur modifier ou supprimer
le popup s'ouvre et a pour source
<html>
<!##########################################################################################################################>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Arrêt chaîne</title>
<link rel="stylesheet" media="screen" type="text/css" title="identification" href="Application.css">
</head>
<!##########################################################################################################################>
<form method="post" action="Modif_et_Suppr.php">
<body>
<!------------------ Bannière ------------------>
<div id="ban3"> </div>
<!-- Question -->
Vous n'avez pas cochez d'arrêt chaîne</form>
</body>
</html>
par contre derrière le popup une autre page se génère avec tout ce que je veut dedans
donc toutes les variables passe -
il m'affiche 3
Je l'ai mis juste au dessus de modifier
et j'ai 3 ligne dans ma table -
Je viens de faire ca
<?php
require('Connexion.php');
require('Requete.php');
//--------------- Requete du tableau des arrêts chaîne ---------------//
$sql0="SELECT * FROM ARRET_CHAINE WHERE DEBUT =#$date#";
$rs = odbc_exec($conn,$sql0) or die('Erreur SQL : <br />'.$sql0);
while (odbc_fetch_row($rs))
{
$CHOIX = odbc_result($rs,"NUMERO_ARRET_CHAINE");
}
echo "<input name=\"Modifier\" type=\"submit\" value=\"Modifier\" onclick=\"window.open('formulaire.php?id=".$CHOIX."', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');\" type=\"button\">";
?>
Et hélas ca ne fonctionne pas
Une autre idée? -
En ne prenant que ce bout de code et sachant que j'ai enfin décidé a fermer la balise form lol
est ce que c'est normal que ca ne fonctionne toujours pas?
<input name="lien2" type="submit" value="Modifer" onclick="window.open('Modif_form.php?id=<?php $CHOIX ?>', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">-
Je pense que oui, c'est normal vu que tu essaie de mélanger javascript et php. Il faut se dire que tout ce qui se passe après le onclick de ton bouton, c'est du javascript, et que donc, intégrer du php dedans ce n'est pas beau du tout.
Fait plutot l'inverse, a savoir un echo de ton input en php, avec le javascript qui va avec. sa donnerais sa:
<?php echo "<input name=\"lien2\" type=\"submit\" value=\"Modifer\" onclick=\"window.open('Modif_form.php?id=".$CHOIX."', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');\" type=\"button\">"; ?>
-
-
Merci pour ton suivit vraiment j'essaye de suivre tes conseils mais c'est pas facile
Et du coup ca ne fonctionne toujours pas lol pourrais tu jeter un petit coup d'oeuil stp
<html>
<!################################################################################################################################>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Utilisateur</title>
<link rel="stylesheet" media="screen" type="text/css" title="identification" href="Application.css">
</head>
<!################################################################################################################################>
<form method="post" action="'Modif_form.php">
<body onload="runClock()">
<!--------------- Bannière --------------->
<div id="ban2" > </div>
<!--------------- Boutton --------------->
<div style="text-align: center;">
<input name="lien1" value="Arrêt chaîne" onclick="window.open('Form_utilisateur.php', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
<input name="lien2" type="submit" value="Modifer" onclick="window.open('Modif_form.php?id=<?php $CHOIX ?>', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
<input name="lien3" type="submit" value="Supprimer" onclick="window.open('Del_arret.php', 'suppr_aret_chaine', config='width=600, height=240, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
<input name="lien4" value="Imprimer" onclick="edition();return false;"type="button">
</div>
<br>
<!--------------- Heure défilant --------------->
<div id="time"></div>
<!--------------- Tableau de gestion des arrêts chaîne --------------->
<?php
require('Connexion.php');
require('Requete.php');
//--------------- Requete du tableau des arrêts chaîne ---------------//
$sql0="SELECT * FROM ARRET_CHAINE WHERE DEBUT =#$date#";
$rs = odbc_exec($conn,$sql0) or die('Erreur SQL : <br />'.$sql0);
//--------------- Tableau des arrêts chaîne ---------------//
echo "<div style='overflow-y: scroll; height: 305'> ";
echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
echo "<tbody>";
echo "<tr>";
echo "<table style='width: 968px; height: 60px;' border='5' cellpadding='2' cellspacing='1'>"; // Taille du tableau //
echo "<tbody>";
echo "<tr>";
echo "<td class='table-titre' colspan='9'> Ouverture: $ouverture      Cadence: $cadence      Taktime: $total </td>";
echo "</tr>";
echo "<tr>";
echo "<td class='table-entete-centre' width='20'>Choix</td>";
echo "<td class='table-entete-centre' width='20'>Type</td>";
echo "<td class='table-entete-centre' width='20'>Début</td>";
echo "<td class='table-entete-centre' width='20'>Fin</td>";
echo "<td class='table-entete-centre' width='20'>Constat</td>";
echo "<td class='table-entete-centre' width='20'>Demande </td>";
echo "<td class='table-entete-centre' width='20'>Cause</td>";
echo "<td class='table-entete-centre' width='20'>Information</td>";
echo "<td class='table-entete-centre' width='20'>Imputation</td>";
echo "</tr>";
while (odbc_fetch_row($rs))
{
$CHOIX = odbc_result($rs,"NUMERO_ARRET_CHAINE");
$TYPE=odbc_result($rs,"TYPE");
$DEBUT=odbc_result($rs,"HEURE_DEBUT");
$FIN=odbc_result($rs,"HEURE_FIN");
$CONSTAT=odbc_result($rs,"CONSTAT");
$DEMANDE=odbc_result($rs,"DEMANDE");
$CAUSE=odbc_result($rs,"CAUSE");
$INFO=odbc_result($rs,"COMPLEMENT_INFORMATION");
$IMPUTATION=odbc_result($rs,"IMPUTATION");
echo "<tr>";
echo "<td class='table-ligne1-centre' width='100'> <input type=\"radio\" name=\"choix\" value='".$CHOIX."'> </td>";
echo "<td class='table-ligne1-centre' width='100'>$TYPE</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEBUT</td>";
echo "<td class='table-ligne1-centre' width='100'>$FIN</td>";
echo "<td class='table-ligne1-centre' width='100'>$CONSTAT</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEMANDE</td>";
echo "<td class='table-ligne1-centre' width='100'>$CAUSE</td>";
echo "<td class='table-ligne1-centre' width='100'>$INFO</td>";
echo "<td class='table-ligne1-centre' width='100'>$IMPUTATION</td>";
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
echo "</tr>";
echo "</tbody>";
echo "</table>";
echo "</div>";
//--------------- Tableau des informations générales de la journée ---------------//
echo "<br>";
echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
echo "<tbody>";
echo "<table style='width: 500px; height: 90px;' border='5' cellpadding='2' cellspacing='1'>";
echo "<tr>";
echo "<td class='table-titre' colspan='13'> Infos en temps réel </td>";
echo "</tr>";
//--------------- En tete de colonne ---------------//
echo "<tr>";
echo "<td class='table-entete' width='1'>Nombre d'arrêt </td>";
echo "<td class='table-entete' width='1'>Durée perdu </td>";
echo "<td class='table-entete-centre' width='20'>Pertes TA </td>";
echo "<td class='table-entete-centre' width='20'></td>";
echo "<td class='table-entete-centre' width='20'> Trou </td>";
echo "<td class='table-entete-centre' width='20'> Autre </td>";
echo "<td class='table-entete-centre' width='20'></td>";
echo "<td class='table-entete-centre' width='50'>Durée total perdu </td>";
echo "<td class='table-entete-centre' width='50'>TA total perdu </td>";
echo "</tr>";
//--------------- RESULTATS ---------------//
echo "<tr>";
echo "<td class='table-ligne1-centre' width='100'> $my_array[0] </td>";
echo "<td class='table-ligne1-centre' width='100'> $dureeperdu </td>";
echo "<td class='table-ligne1-centre' width='100'> $perteTA </td>";
echo "<td class='table-ligne1-centre' width='2'></td>";
echo "<td class='table-ligne1-centre' width='100'> $resultat </td>";
echo "<td class='table-ligne1-centre' width='100'> $dureeinfo </td>";
echo "<td class='table-ligne1-centre' width='2'></td>";
echo "<td class='table-ligne1-centre' width='100'> $totalduree </td>";
echo "<td class='table-ligne1-centre' width='100'> $pertetotaleTA </td>";
echo "</tr>";
echo "</tbody>";
echo "</table>";
//--------------- Fermeture de la bdd ---------------//
odbc_close($conn);
?>
<!--------------- Fin page utilisateur --------------->
</body>
</html> -
entouré??? tu veux dire entouré par les balises php
-
Oui...il faut se dire que :
$variable est un nom de variable php => n'est reconnu que par le php donc entre <?php et ?>
<input.....> est une balise html => n'est reconnu que dans du html.
Les scripts php servant à générer des pages html, c'est pour cela qu'il faut faire un echo "<input..." car sinon, sa ne sera pas reconnu.
Petites démos
<?php
echo "<input type='text' name='salut' value='".$val."'>"
?>
Fonctionnera, car le script php va traiter ce qu'il y a entre guillemets comme un texte a mettre dans la page html, et remplacer $val par sa valeur. Il va donc mettre <input type='text' name='salut' value='valeurval'>
<input type='text' name='salut' value='$val'>
Ne fonctionnera pas comme voulu, car bete et méchant, la zone de texte contiendra le texte $val.
Javascript c'est encore différent: lui a ses propres variables, déclarée de cette manière:
var variable;
et utilisables directement avec l'identifiant (variable dans notre exemple). Il ne comprend pas le $variable de la même manière que php, il ne le comprends d'ailleurs pas du tout.
Je te conseille ce dossier pour le javascript, celui ci pour l'HTML, celui là pour le PHP. Mais n'hésite pas si tu a encore d'autres questions.
-
-
Et je peut mettre
<input name="lien2" type="submit" value="Modifer" onclick="window.open('Modif_form.php?id=$CHOIX', 'utilisateur',
config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button"> -
Alors je ne connais pas du tout le js donc quand tu dit qu'il va falloir que je fasse en js
Ca veut dire qu'il va falloir que je fasse ma page de récupération en js???
Quand tu met
'Modif_form.php?id=lavaleurquetuveut'
C'est ma variable qui cherhce la clé primaire que je met?
Ensuite j'ai une question sur sql en apparté stp
$base_info = "SELECT OUVERTURE,CADENCE FROM JOUR WHERE JOUR = '".addslashes($jour)."'";
Voici ma requete qui fonctionne bien par contre je voudrais savoir si c'est possible de comparé la date systeme a une periode date_debut et date fin Donc je suppose qu'il faut rajouter une condition between mais je n'y arrive pas pourrais tu m'éclairer svp-
Non, js c'est javascript, c'est le onclick= de ton bouton, ou de ton lien. Ta page de popup n'est pas forcément écrite en JS, tu peut la faire en php, ou html.
Pour le ?id=lavaleurquetuveut, dans lavaleurquetuveut, tu met effectivement celle que tu veut, a toi de le savoir (mais je pense qu'ici il faudra que tu mette la clé primaire en effet.
Pour ta comparaison, en sql, tu peut tout a fait remplacer le = par un > un <= un < ou un >=, sa ne pose pas de problemes.
Si sa te pose effectivement problème, tu suis cette syntaxe pour le between:
SELECT quelquechose FROM tatable WHERE attribut BETWEEN 'valeur1' AND 'valeur2';
-
-
C'est normal, c'est un méli mélo de php et js qui ne fonctionnera pas.
SI tu veut récupérer dans ton popup (visiblement Modif_form.php), tu a deux solutions:
en js, passe la valeur par get (Modif_form.php?id=tavaleur) => récupération via $_GET['id']
en php pur, passe par le formulaire => <input type=\"submit\"> un clic sur ce bouton et cela ouvre ta popup dans la fenetre courrante.
Du fait que tu veuille une popup, il te faudra donc utiliser js et donc la méthode GET.
Pour reprendre la partie de code qu'il te faut, cela donnerais<input name="lien2" type="submit" value="Modifer" onclick="window.open('Modif_form.php?id=lavaleurquetuveut', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
Je vois que tu n'a toujours pas fermé cette balise <form>: elle t'a fait bobo? tu veut pas y toucher? ^^
-
Bonjour,
Effectivment le fait que vous soyez a l'extérieur complique les choses
Donc je vous résume les choses
j'ai fait quelque petite modif et j'ai a nouveau un petit problème.
Je vous met tout le code de la page de génération de tableau et je voudrais que vous regardiez parce dans les boutton de ma page qui sont définit en popup et surtout celui modifier.
Je veux récupérer le $_POST['choix'] dans le popup et je le récupère dans une autre page alors que le popup s'ouvre bien mais m'affiche rien.
Savez vous comment faire svp?
<html>
<!################################################################################################################################>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Utilisateur</title>
<link rel="stylesheet" media="screen" type="text/css" title="identification" href="Application.css">
</head>
<!################################################################################################################################>
<body onload="runClock()">
<form method="post" action="Modif_form.php">
<!--------------- Bannière --------------->
<div id="ban2" > </div>
<!--------------- Boutton --------------->
<div style="text-align: center;">
<input name="lien1" value="Arrêt chaîne" onclick="window.open('Form_utilisateur.php', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
<input name="lien2" type="submit" value="Modifer" onclick="window.open('Modif_form.php', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
<input name="lien3" value="Supprimer" onclick="window.open('Suppr_arret_chaine.html', 'suppr_aret_chaine', config='width=600, height=240, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
<input name="lien4" value="Imprimer" onclick="edition();return false;"type="button">
</div>
<br>
<!--------------- Heure défilant --------------->
<div id="time"></div>
<!--------------- Tableau de gestion des arrêts chaîne --------------->
<?php
require('Connexion.php');
require('Requete.php');
//--------------- Requete du tableau des arrêts chaîne ---------------//
$sql0="SELECT * FROM ARRET_CHAINE WHERE DEBUT =#$date#";
$rs = odbc_exec($conn,$sql0) or die('Erreur SQL : <br />'.$sql0);
//--------------- Tableau des arrêts chaîne ---------------//
echo "<div style='overflow-y: scroll; height: 305'> ";
echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
echo "<tbody>";
echo "<tr>";
echo "<table style='width: 968px; height: 60px;' border='5' cellpadding='2' cellspacing='1'>"; // Taille du tableau //
echo "<tbody>";
echo "<tr>";
echo "<td class='table-titre' colspan='9'> Ouverture: $ouverture      Cadence: $cadence      Taktime: $total </td>";
echo "</tr>";
echo "<tr>";
echo "<td class='table-entete-centre' width='20'>Choix</td>";
echo "<td class='table-entete-centre' width='20'>Type</td>";
echo "<td class='table-entete-centre' width='20'>Début</td>";
echo "<td class='table-entete-centre' width='20'>Fin</td>";
echo "<td class='table-entete-centre' width='20'>Constat</td>";
echo "<td class='table-entete-centre' width='20'>Demande </td>";
echo "<td class='table-entete-centre' width='20'>Cause</td>";
echo "<td class='table-entete-centre' width='20'>Information</td>";
echo "<td class='table-entete-centre' width='20'>Imputation</td>";
echo "</tr>";
while (odbc_fetch_row($rs))
{
$CHOIX = odbc_result($rs,"NUMERO_ARRET_CHAINE");
$TYPE=odbc_result($rs,"TYPE");
$DEBUT=odbc_result($rs,"HEURE_DEBUT");
$FIN=odbc_result($rs,"HEURE_FIN");
$CONSTAT=odbc_result($rs,"CONSTAT");
$DEMANDE=odbc_result($rs,"DEMANDE");
$CAUSE=odbc_result($rs,"CAUSE");
$INFO=odbc_result($rs,"COMPLEMENT_INFORMATION");
$IMPUTATION=odbc_result($rs,"IMPUTATION");
echo "<tr>";
echo "<td class='table-ligne1-centre' width='100'> <input type=\"radio\" name=\"choix\" value='".$CHOIX."'> </td>";
echo "<td class='table-ligne1-centre' width='100'>$TYPE</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEBUT</td>";
echo "<td class='table-ligne1-centre' width='100'>$FIN</td>";
echo "<td class='table-ligne1-centre' width='100'>$CONSTAT</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEMANDE</td>";
echo "<td class='table-ligne1-centre' width='100'>$CAUSE</td>";
echo "<td class='table-ligne1-centre' width='100'>$INFO</td>";
echo "<td class='table-ligne1-centre' width='100'>$IMPUTATION</td>";
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
echo "</tr>";
echo "</tbody>";
echo "</table>";
echo "</div>";
//--------------- Tableau des informations générales de la journée ---------------//
echo "<br>";
echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
echo "<tbody>";
echo "<table style='width: 500px; height: 90px;' border='5' cellpadding='2' cellspacing='1'>";
echo "<tr>";
echo "<td class='table-titre' colspan='13'> Infos en temps réel </td>";
echo "</tr>";
//--------------- En tete de colonne ---------------//
echo "<tr>";
echo "<td class='table-entete' width='1'>Nombre d'arrêt </td>";
echo "<td class='table-entete' width='1'>Durée perdu </td>";
echo "<td class='table-entete-centre' width='20'>Pertes TA </td>";
echo "<td class='table-entete-centre' width='20'></td>";
echo "<td class='table-entete-centre' width='20'>Info </td>";
echo "<td class='table-entete-centre' width='20'>Trou </td>";
echo "<td class='table-entete-centre' width='20'></td>";
echo "<td class='table-entete-centre' width='50'>Durée total perdu </td>";
echo "<td class='table-entete-centre' width='50'>TA total perdu </td>";
echo "</tr>";
//--------------- RESULTATS ---------------//
echo "<tr>";
echo "<td class='table-ligne1-centre' width='100'> $my_array[0] </td>";
echo "<td class='table-ligne1-centre' width='100'> $dureeperdu </td>";
echo "<td class='table-ligne1-centre' width='100'> $perteTA </td>";
echo "<td class='table-ligne1-centre' width='2'></td>";
echo "<td class='table-ligne1-centre' width='100'> $dureeinfo </td>";
echo "<td class='table-ligne1-centre' width='100'> $resultat </td>";
echo "<td class='table-ligne1-centre' width='2'></td>";
echo "<td class='table-ligne1-centre' width='100'> $totalduree </td>";
echo "<td class='table-ligne1-centre' width='100'> $pertetotaleTA </td>";
echo "</tr>";
echo "</tbody>";
echo "</table>";
//--------------- Fermeture de la bdd ---------------//
odbc_close($conn);
?>
<!--------------- Fin page utilisateur --------------->
</body>
</html> -
Je suis d'accord avec toi dans le principe mais il y a une difficulté supplémentaire ke je t'explique
Donc chaque jour le tableau que je présente reprend à zéro et forcément pas l'identifiant dans la base
je sais pas si je suis clair.-
Je comprends pas trop ce que tu essaie de m'expliquer, du fait que je suis extérieur à ton projet. Néanmoins, je vais te donner deux pistes possibles:
- soit ta requête est faite avant ton while de génération de tableau, si tes ids ne bougent pas et sont liés directement à la bdd
- soit tu construit la requête dans le while et tu l'exécute à chaque fois pour aller rechercher dans la base l'identifiant qu'il te faut pour la ligne courante.
Est ce que cela t'a aidé?
-
-
effectivement ca parait plus simple ta méthode
mais regarde ja fais comme tu me dis et ca ne fonctionne pas.
post.php
<?php
if (isset($_POST['check']))
{
//le traitement à faire pour une checkbox cochée
echo $_POST['check'];
}
else
{
echo "merde";
//le traitement a faire en temps normal sans le check
}
?>
<html>
<!################################################################################################################################>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Utilisateur</title>
<link rel="stylesheet" media="screen" type="text/css" title="identification" href="Application.css">
</head>
<!################################################################################################################################>
<body onload="runClock()">
<form method="post" action="login.php">
<!--------------- Bannière --------------->
<div id="ban2" > </div>
<!--------------- Boutton --------------->
<div style="text-align: center;">
<input name="lien1" value="Arrêt chaîne" onclick="window.open('Form_utilisateur.php', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
<input name="lien2" value="Modifer" onclick="window.open('Modif_form.php', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
<input name="lien3" value="Supprimer" onclick="window.open('Suppr_arret_chaine.html', 'suppr_aret_chaine', config='width=600, height=240, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
<input name="lien4" value="Imprimer" onclick="edition();return false;"type="button">
</div>
<br>
<!--------------- Heure défilant --------------->
<div id="time"></div>
<!--------------- Tableau de gestion des arrêts chaîne --------------->
<?php
require('Connexion.php');
require('Requete.php');
//--------------- Requete du tableau des arrêts chaîne ---------------//
$sql0="SELECT * FROM ARRET_CHAINE WHERE DEBUT =#$date#";
$rs = odbc_exec($conn,$sql0) or die('Erreur SQL : <br />'.$sql0);
//--------------- Tableau des arrêts chaîne ---------------//
echo "<div style='overflow-y: scroll; height: 305'> ";
echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
echo "<tbody>";
echo "<tr>";
echo "<table style='width: 968px; height: 60px;' border='5' cellpadding='2' cellspacing='1'>"; // Taille du tableau //
echo "<tbody>";
echo "<tr>";
echo "<td class='table-titre' colspan='9'> Ouverture: $ouverture      Cadence: $cadence      Taktime: $total </td>";
echo "</tr>";
echo "<tr>";
echo "<td class='table-entete-centre' width='20'>Choix</td>";
echo "<td class='table-entete-centre' width='20'>Type</td>";
echo "<td class='table-entete-centre' width='20'>Début</td>";
echo "<td class='table-entete-centre' width='20'>Fin</td>";
echo "<td class='table-entete-centre' width='20'>Constat</td>";
echo "<td class='table-entete-centre' width='20'>Demande </td>";
echo "<td class='table-entete-centre' width='20'>Cause</td>";
echo "<td class='table-entete-centre' width='20'>Information</td>";
echo "<td class='table-entete-centre' width='20'>Imputation</td>";
echo "</tr>";
$i =1;
while (odbc_fetch_row($rs))
{
$TYPE=odbc_result($rs,"TYPE");
$DEBUT=odbc_result($rs,"HEURE_DEBUT");
$FIN=odbc_result($rs,"HEURE_FIN");
$CONSTAT=odbc_result($rs,"CONSTAT");
$DEMANDE=odbc_result($rs,"DEMANDE");
$CAUSE=odbc_result($rs,"CAUSE");
$INFO=odbc_result($rs,"COMPLEMENT_INFORMATION");
$IMPUTATION=odbc_result($rs,"IMPUTATION");
echo "<tr>";
echo "<td class='table-ligne1-centre' width='100'> <input type=\"radio\" name=\"check\" value='".$i."'> </td>";
echo "<td class='table-ligne1-centre' width='100'>$TYPE</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEBUT</td>";
echo "<td class='table-ligne1-centre' width='100'>$FIN</td>";
echo "<td class='table-ligne1-centre' width='100'>$CONSTAT</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEMANDE</td>";
echo "<td class='table-ligne1-centre' width='100'>$CAUSE</td>";
echo "<td class='table-ligne1-centre' width='100'>$INFO</td>";
echo "<td class='table-ligne1-centre' width='100'>$IMPUTATION</td>";
echo "</tr>";
$i++;
}
echo "</tbody>";
echo "</table>";
echo "</tr>";
echo "</tbody>";
echo "</table>";
echo "</div>";
//--------------- Tableau des informations générales de la journée ---------------//
echo "<br>";
echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
echo "<tbody>";
echo "<table style='width: 500px; height: 90px;' border='5' cellpadding='2' cellspacing='1'>";
echo "<tr>";
echo "<td class='table-titre' colspan='13'> Infos en temps réel </td>";
echo "</tr>";
//--------------- En tete de colonne ---------------//
echo "<tr>";
echo "<td class='table-entete' width='1'>Nombre d'arrêt </td>";
echo "<td class='table-entete' width='1'>Durée perdu </td>";
echo "<td class='table-entete-centre' width='20'>Pertes TA </td>";
echo "<td class='table-entete-centre' width='20'></td>";
echo "<td class='table-entete-centre' width='20'>Info </td>";
echo "<td class='table-entete-centre' width='20'>Trou </td>";
echo "<td class='table-entete-centre' width='20'></td>";
echo "<td class='table-entete-centre' width='50'>Durée total perdu </td>";
echo "<td class='table-entete-centre' width='50'>TA total perdu </td>";
echo "</tr>";
//--------------- RESULTATS ---------------//
echo "<tr>";
echo "<td class='table-ligne1-centre' width='100'> $my_array[0] </td>";
echo "<td class='table-ligne1-centre' width='100'> $dureeperdu </td>";
echo "<td class='table-ligne1-centre' width='100'> $perteTA </td>";
echo "<td class='table-ligne1-centre' width='2'></td>";
echo "<td class='table-ligne1-centre' width='100'> $dureeinfo </td>";
echo "<td class='table-ligne1-centre' width='100'> $resultat </td>";
echo "<td class='table-ligne1-centre' width='2'></td>";
echo "<td class='table-ligne1-centre' width='100'> $totalduree </td>";
echo "<td class='table-ligne1-centre' width='100'> $pertetotaleTA </td>";
echo "</tr>";
echo "</tbody>";
echo "</table>";
//--------------- Fermeture de la bdd ---------------//
odbc_close($conn);
?>
<!--------------- Fin page utilisateur --------------->
</body>
</html>
et second petit problème jme demande comment je pourrais faire pour que le value de chaque bouton radio prenne la clé primaire de chaque ligne auriez vous une idée svp?-
Alors pour le premier problème, ta page telle quelle ne fonctionnera pas car il te manque:
le bouton <input type="submit">
ainsi que la fermeture de la balise form (echo "</form>";)
Ensuite, pour que le bouton radio prenne les identifiants d'une table, il te faudra faire une requete sql pour aller chercher la liste des identifiants, l'exécuter avant ton while, puis dans le while faire un fetch_array() du résultat pour le récupérer dans un tableau. Ce tableau comporte autant d'entrée que de colonnes sorties par la requete, et représente une ligne de cette sortie. A chaque fetch_array(), la ligne passe à la suivante. Cette fonction renvoie faux lorsqu'elle ne trouve plus de ligne. Il te suffit une fois la ligne récupérée ($ligne=odbc_fetch_array($resultat) ) de faire par exemple $ligne[0] pour récupérer la première colonne de la ligne courante.
Je viens de voir que tu préfère utiliser fetch_row, sa reste dans le même principe.
-
-
J'ai pas trop bien compris ton histoire de bouton radio je vois ce que c'est mais pourquoi ce seront eux les plus correct?
Pour ce que tu ma dit j'ai corrigé dans mapage.php le isset
et l'autre avait bien method post...
jte met le code de toute la page
si tu veu jeter un oup d'oueil
<html>
<!################################################################################################################################>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Utilisateur</title>
<link rel="stylesheet" media="screen" type="text/css" title="identification" href="Application.css">
</head>
<!################################################################################################################################>
<body onload="runClock()">
<form method="post" action="login.php">
<!--------------- Bannière --------------->
<div id="ban2" > </div>
<!--------------- Boutton --------------->
<div style="text-align: center;">
<input name="lien1" value="Arrêt chaîne" onclick="window.open('Form_utilisateur.php', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
<input name="lien2" value="Modifer" onclick="window.open('Modif_form.php', 'utilisateur', config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
<input name="lien3" value="Supprimer" onclick="window.open('Suppr_arret_chaine.html', 'suppr_aret_chaine', config='width=600, height=240, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');" type="button">
<input name="lien4" value="Imprimer" onclick="edition();return false;"type="button">
</div>
<br>
<!--------------- Heure défilant --------------->
<div id="time"></div>
<!--------------- Tableau de gestion des arrêts chaîne --------------->
<?php
require('Connexion.php');
require('Requete.php');
//--------------- Requete du tableau des arrêts chaîne ---------------//
$sql0="SELECT * FROM ARRET_CHAINE WHERE DEBUT =#$date#";
$rs = odbc_exec($conn,$sql0) or die('Erreur SQL : <br />'.$sql0);
//--------------- Tableau des arrêts chaîne ---------------//
echo "<div style='overflow-y: scroll; height: 305'> ";
echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
echo "<tbody>";
echo "<tr>";
echo "<table style='width: 968px; height: 60px;' border='5' cellpadding='2' cellspacing='1'>"; // Taille du tableau //
echo "<tbody>";
echo "<tr>";
echo "<td class='table-titre' colspan='9'> Ouverture: $ouverture      Cadence: $cadence      Taktime: $total </td>";
echo "</tr>";
echo "<tr>";
echo "<td class='table-entete-centre' width='20'>Choix</td>";
echo "<td class='table-entete-centre' width='20'>Type</td>";
echo "<td class='table-entete-centre' width='20'>Début</td>";
echo "<td class='table-entete-centre' width='20'>Fin</td>";
echo "<td class='table-entete-centre' width='20'>Constat</td>";
echo "<td class='table-entete-centre' width='20'>Demande </td>";
echo "<td class='table-entete-centre' width='20'>Cause</td>";
echo "<td class='table-entete-centre' width='20'>Information</td>";
echo "<td class='table-entete-centre' width='20'>Imputation</td>";
echo "</tr>";
$i =1;
while (odbc_fetch_row($rs))
{
$TYPE=odbc_result($rs,"TYPE");
$DEBUT=odbc_result($rs,"HEURE_DEBUT");
$FIN=odbc_result($rs,"HEURE_FIN");
$CONSTAT=odbc_result($rs,"CONSTAT");
$DEMANDE=odbc_result($rs,"DEMANDE");
$CAUSE=odbc_result($rs,"CAUSE");
$INFO=odbc_result($rs,"COMPLEMENT_INFORMATION");
$IMPUTATION=odbc_result($rs,"IMPUTATION");
echo "<tr>";
echo "<td class='table-ligne1-centre' width='100'> <input type=\"checkbox\" name=\"check\" value='".$i."'> </td>";
echo "<td class='table-ligne1-centre' width='100'>$TYPE</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEBUT</td>";
echo "<td class='table-ligne1-centre' width='100'>$FIN</td>";
echo "<td class='table-ligne1-centre' width='100'>$CONSTAT</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEMANDE</td>";
echo "<td class='table-ligne1-centre' width='100'>$CAUSE</td>";
echo "<td class='table-ligne1-centre' width='100'>$INFO</td>";
echo "<td class='table-ligne1-centre' width='100'>$IMPUTATION</td>";
echo "</tr>";
$i++;
}
echo "</tbody>";
echo "</table>";
echo "</tr>";
echo "</tbody>";
echo "</table>";
echo "</div>";
//--------------- Tableau des informations générales de la journée ---------------//
echo "<br>";
echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
echo "<tbody>";
echo "<table style='width: 500px; height: 90px;' border='5' cellpadding='2' cellspacing='1'>";
echo "<tr>";
echo "<td class='table-titre' colspan='13'> Infos en temps réel </td>";
echo "</tr>";
//--------------- En tete de colonne ---------------//
echo "<tr>";
echo "<td class='table-entete' width='1'>Nombre d'arrêt </td>";
echo "<td class='table-entete' width='1'>Durée perdu </td>";
echo "<td class='table-entete-centre' width='20'>Pertes TA </td>";
echo "<td class='table-entete-centre' width='20'></td>";
echo "<td class='table-entete-centre' width='20'>Info </td>";
echo "<td class='table-entete-centre' width='20'>Trou </td>";
echo "<td class='table-entete-centre' width='20'></td>";
echo "<td class='table-entete-centre' width='50'>Durée total perdu </td>";
echo "<td class='table-entete-centre' width='50'>TA total perdu </td>";
echo "</tr>";
//--------------- RESULTATS ---------------//
echo "<tr>";
echo "<td class='table-ligne1-centre' width='100'> $my_array[0] </td>";
echo "<td class='table-ligne1-centre' width='100'> $dureeperdu </td>";
echo "<td class='table-ligne1-centre' width='100'> $perteTA </td>";
echo "<td class='table-ligne1-centre' width='2'></td>";
echo "<td class='table-ligne1-centre' width='100'> $dureeinfo </td>";
echo "<td class='table-ligne1-centre' width='100'> $resultat </td>";
echo "<td class='table-ligne1-centre' width='2'></td>";
echo "<td class='table-ligne1-centre' width='100'> $totalduree </td>";
echo "<td class='table-ligne1-centre' width='100'> $pertetotaleTA </td>";
echo "</tr>";
echo "</tbody>";
echo "</table>";
//--------------- Fermeture de la bdd ---------------//
odbc_close($conn);
?>
<!--------------- Fin page utilisateur --------------->
</body>
</html>-
Le groupe de boutons radio sera le mieux, car lorsqu'un bouton radio est coché, les autres sont décochés, et ainsi, lorsque tu récupère le $_POST['radio'], tu aura la valeur du bouton sélectionné.
Tandis que si tu utilise les cases à cocher, tu n'aura que le booléen indiquant si la case à cocher est cochée ou non.
Petit récap' pour mieux comprendre sur un exemple simple:<form method="POST" action="page.php"> <input type="radio" name="groupe1" value="1">Valeur 1 <input type="radio" name="groupe1" value="2">Valeur 2 <input type="radio" name="groupe1" value="3">Valeur 3 </form> **** Page.php if(isset($_POST['groupe1']){ echo $_POST['groupe1']; //renverra 1 si le bouton Valeur 1 est coché, 2 si le bouton Valeur 2 est coché... }else{ echo "Pas de formulaire ou pas de bouton coché"; }
Tandis que
<form method="POST" action="page.php"> <input type="checkbox" name="check">Ma checkbox 1 </form> ***** Page.php if(isset($_POST['check']){ echo $_POST['check']; //affichera true ou ON si Ma checkbox est coché, false ou OFF si elle n'est pas cochée }else{ echo "le formulaire n'a pas été validé"; }
C'est pour cela que l'on ne peut pas donner le même nom à deux checkboxs, ni leur donner de value. enfin, on pourrait mais ce n'est pas HTML valide, encore moins W3C ni Tidy valide ;) donc sa ne fonctionnerait pas.
-
- 1
- 2