[php] tableaux avec buttons radio
Résolu
saad0n
-
fxtaa Messages postés 1050 Date d'inscription Statut Membre Dernière intervention -
fxtaa Messages postés 1050 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un tableau résultant d'une requête mysql .Voila un extrait du code ( rien de bien compliqué ):
ce que je voudrais c'est associer à chaque ligne un bouton radio pour pouvoir calculer par exemple le cout previsionnel de plusieurs entrées sélectionnées .
Si quelqu'un a une idée je suis preneur
Merci
J'ai un tableau résultant d'une requête mysql .Voila un extrait du code ( rien de bien compliqué ):
<table align="center" align="center"> <tr align="center" ><TH align="center" >Libéllé tronçon</TH ><TH align="center" >Longueur prévisionnelle</TH><TH align="center" >Coût prévisionnel</TH></tr> <?php require ('./conf/config.inc.php'); // fichier de config require ('./functions/mysql.php'); // fichier des fonctions $link = mysql_connect("$host","$login","$password") or die ("Connexion au serveur impossible"); mysql_select_db($database,$link); $table = $_GET['table']; $previsionnel=$table.'_previsionnel'; $result = mysql_query("SELECT * FROM $previsionnel "); while ($table_arcachon_previ = mysql_fetch_assoc($result)) { echo '<tr align="center" ><td align="center" >'.$table_arcachon_previ['libelle_troncon'].'</td>'; echo '<td align="center" >'.$table_arcachon_previ['longueur_previsionnelle'].'</td>'; echo '<td align="center" >'.$table_arcachon_previ['cout_previsionnel'].'</td></tr>'; } mysql_close($link); ?> </table>
ce que je voudrais c'est associer à chaque ligne un bouton radio pour pouvoir calculer par exemple le cout previsionnel de plusieurs entrées sélectionnées .
Si quelqu'un a une idée je suis preneur
Merci
A voir également:
- [php] tableaux avec buttons radio
- Radio française - Télécharger - Médias et Actualité
- Easy php - Télécharger - Divers Web & Internet
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Télécharger podcast radio france mp3 - Guide
3 réponses
Bonjour,
que veux tu calculer exactement, et à partir de qu'elles données ?
et pourquoi utiliser des boutons radios ? choisir des années ?
que veux tu calculer exactement, et à partir de qu'elles données ?
et pourquoi utiliser des boutons radios ? choisir des années ?
Bon voila, tout n'est pas fait mais tu as les grandes lignes :
<form name="radio" method="post" action=""> // AJOUT <table align="center" align="center"> <tr align="center" > <TH align="center" >Libéllé tronçon</TH > <TH align="center" >Longueur prévisionnelle</TH> <TH align="center" >Coût prévisionnel</TH> <TH align="center" >Checkbox</TH>// AJOUT </tr> <?php require ('./conf/config.inc.php'); // fichier de config require ('./functions/mysql.php'); // fichier des fonctions $link = mysql_connect("$host","$login","$password") or die ("Connexion au serveur impossible"); mysql_select_db($database,$link); $table = $_GET['table']; $previsionnel=$table.'_previsionnel'; $result = mysql_query("SELECT * FROM $previsionnel "); $i = 0; while ($table_arcachon_previ = mysql_fetch_assoc($result)){ echo '<tr align="center" ><td align="center" >'.$table_arcachon_previ['libelle_troncon'].'</td>'; echo '<td align="center" >'.$table_arcachon_previ['longueur_previsionnelle'].'</td>'; echo '<td align="center" >'.$table_arcachon_previ['cout_previsionnel'].'</td></tr>'; echo '<td align="center" ><input name="'.$i.'" type="checkbox" value="'.$table_arcachon_previ['id'].'"></td></tr>'; // AJOUT $i++; } mysql_close($link); ?> </table> </form> // AJOUT ----------------------TRAITEMENT-------------------------- <?php // on compte le nombre de ligne possible pour connaitre le nombre de name d'input possible $sql = "SELECT COUNT(*) FROM table"; $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); $row = mysql_fetch_row($req); $tot = $row[0]; $i = 0; // on prépare le début de la requête $rqt = "SELECT * FROM table WHERE "; while ($i != $tot){ if (isset ($_POST['$i']){ $id = $_POST['$i']; $rqt .= "id='$id' AND "; } $i++; } $rqt .= ";"; // Expression régulière pour éviter une requête de la forme " WHERE id='2' AND id ='4' AND; " // je connais pas bien les fonctions d expression régulieres sous php mais en gros ta regexp doit donner ca : /AND;/;/ Je remplace AND; par ;. echo $rqt; mysqlquery ($rqt); ?>
je reviens a toi . j'ai mis ta partie TRAITEMENT dans une nouvelle page que j'ai mise comme cible pour mon formulaire
lorsque je coche les entrées qui m'interessent et que je valide , on m'affiche :
je ne sais pas pourquoi
action="traitement.php". j'ai ajouté un bouton submit à la premiere page.
lorsque je coche les entrées qui m'interessent et que je valide , on m'affiche :
SELECT * FROM arcachon_previsionnel WHERE ;. apparement la boucle while n'est pas parcourue.
je ne sais pas pourquoi
Tu peux le faire, mais il te faut des checkbox et non pas des radios boutons
voila un bout de code qui fait ce que tu veux, j'ai supposé que tes enregistrements ont un identifiant dans la base :
A modifier et ajuter pour ton code :)
voila un bout de code qui fait ce que tu veux, j'ai supposé que tes enregistrements ont un identifiant dans la base :
<?php $s = ""; echo '<table>\n'; $result = mysql_query("SELECT * FROM $previsionnel "); while ($table_arcachon_previ = mysql_fetch_assoc($result)) { if($s=="") $s.=$table_arcachon_previ['id']; else $s.=", ".$table_arcachon_previ['id']; echo '<tr align="center" >\n'; echo '<td align="center" >'.$table_arcachon_previ['libelle_troncon'].'</td>\n'; echo '<td align="center" >'.$table_arcachon_previ['longueur_previsionnelle'].'</td>\n'; echo '<td align="center" id="td_cout_'.$table_arcachon_previ['id'].'">'.$table_arcachon_previ['cout_previsionnel'].'</td>\n'; echo '<td align="center" ><input id="check_box_'.$table_arcachon_previ['id'].'" type="checkbox" checked="checked"/></td>\n'; echo '</tr>\n'; } echo '<tr align="center" >\n'; echo '<td colspan="4" id="td_total"> </td>\n'; echo '</tr>\n'; echo '<table>\n'; echo '<script type="text/javascript">; var liste_troncon = new Array(); liste_troncon = ['.$s.']; function calcul_total() { var total=0; for(var i=0; i<liste_troncon.length ;i++) { if(document.getElementById("check_box_"+liste_troncon[i]).checked) total+=document.getElementById("td_cout_"+liste_troncon[i]).innerHTML ; } document.getElementById("td_total"+liste_troncon[i]).innerHTML = total ; } </script>\n'; ?>
A modifier et ajuter pour ton code :)
merci pour ton code mais ca marche pas pour moi .
ca m'affiche beaucoup de
ca m'affiche beaucoup de
/n /na la suite. Et au chargement les cases sont deja cochées . d'une autre part je ne comprends pas pourquoi il n'y a pas de bouton submit dans ton code. Je suis désolé si j'en demande trop mais j'ai pas trop compris comment ton code marchait :) donc si tu pouvais m'aider merci
En fait j'ai ajouté des checkbox sur chaque ligne. Deja cochées car au début le total de toute les lignes est calculé.
Il faut que tu ajoutes un bouton qui appelle la fonction javascript "calcul_total". Pas besoin de recharger la page pour le calcul, le javascript se base sur les informations déjà présente dans la page.
Pour les \n, c'est vrai il faut remplacer les ' par des " quand il y a des echos, sinon les sauts à la ligne (\n) ne sont pas fait.
(Tu peux aussi les enlever, mais si quelqu'un regarde ton code généré, ça sera pas beau à voir :p)
Tu comprends mieux ? ^^
Il faut que tu ajoutes un bouton qui appelle la fonction javascript "calcul_total". Pas besoin de recharger la page pour le calcul, le javascript se base sur les informations déjà présente dans la page.
Pour les \n, c'est vrai il faut remplacer les ' par des " quand il y a des echos, sinon les sauts à la ligne (\n) ne sont pas fait.
(Tu peux aussi les enlever, mais si quelqu'un regarde ton code généré, ça sera pas beau à voir :p)
Tu comprends mieux ? ^^
je veux que l'utilisateur puisse calculer le le cout previsionnel de plusieurs lignes. Voila un exemple : imaginons que je genere le tableau suivant :
libelle longueur cout
a 20 1000
b 10 2000
c 5 3000
d 15 1500
l'utilisateur peut choisir de calculer le cout previsionnel de a+b+d ce qui doit lui donner 4500
J'espere que c'est plus clair