[php] tableaux avec buttons radio

Résolu
saad0n -  
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é ):
	<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:

3 réponses

Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
Bonjour,

que veux tu calculer exactement, et à partir de qu'elles données ?
et pourquoi utiliser des boutons radios ? choisir des années ?
0
saad0n
 
salut

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
0
saad0n
 
désolé si le tableau n'est pas visible mais jpense que l'idée est claire
0
fxtaa Messages postés 1050 Date d'inscription   Statut Membre Dernière intervention   74
 
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);

?>
0
saad0n
 
merci fixtaa
c'est exactement ca que je veux
je vais tester ca et je tiens au courant

merci de ta reponse
0
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
Désolé j'ai posté après sans voir que tu venais de poster ^^
0
saad0n
 
je reviens a toi . j'ai mis ta partie TRAITEMENT dans une nouvelle page que j'ai mise comme cible pour mon formulaire
 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
0
fxtaa Messages postés 1050 Date d'inscription   Statut Membre Dernière intervention   74
 
fais un echo de $tot pour voir le résultat, ca vient ptet de la
0
saad0n
 
ca me donne 5 ce qui correspond au nombre de mes entrées
par contre quand je fais un echo $id dans la boucle ca me donne rien ( tout comme un var_dump )
0
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
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 :

<?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">&nbsp;</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 :)
0
saad0n
 
merci pour ton code mais ca marche pas pour moi .
ca m'affiche beaucoup de
/n
/n
a 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
0
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
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 ? ^^
0
saad0n
 
oué ca va mieux déjà
je vais fairfe tes modifs et je reviens à toi
merci en tout cas
0
saad0n
 
j'ai fais quelques modifs que je te montrerai plus tard .
question : comment je fais pour afficher le resultat de calcul_modif ??? un echo ne marche pas pcq c'est du javascript
0
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
La fonction fait :
document.getElementById("td_total"+liste_troncon[i]).innerHTML = total ;

petite erreur de ma part il faut modifier
document.getElementById("td_total").innerHTML = total ;

Cela affichera automatique le résultat dans la cellule td_total.
0