Bonjour,

Comme je n'ai pas trouvé le forum php, je post ici...


J'ai actuellement une page avec des boutons radio comme ci-dessous.

upload/49804-ScreenHunt.jpg

Ces boutons permettent d'afficher un graphique hightchart en fonction de la machine, du paramètre, de l'utilitaire, de l'objectif, du status et du mode sélectionné.

Je voudrais remplacer ces bouton radio par des checkbox afin de pouvoir afficher plusieurs machine sur un graphique.

J'ai donc remplacer les radios par des checkbox ce qui me donne :

upload/49804-ScreenHunt.jpg

Cependant, lorsque je sélectionne deux machine, les résultats du graphique n'affiche que ceux de la dernière machine sélectionnée, soit ici FCOMP02.

Je ne vois pas trop ce qu'il faut que je modifie pour que le graphique tienne en compte des checkbox coché...

Comme je suis un débutant, je ne sais pas trop quoi vous montrer, j'ai donc sélectionné une partie de mon code

# Requete : Liste des machines
$machines = array() ;
$req = "SELECT machine_id, machine_nom, machine_adress_ip FROM machines ORDER BY machine_nom ;" ;
$req = mysql_query($req) ;
while( $data = mysql_fetch_array($req) ) {
    $machines[$data["machine_id"]] = $data["machine_nom"] ;
}
 
#############################
# Formulaire : Choix machines
#############################
echo '<div id="machines_id">';
 
 
foreach( $machines as $id=>$nom ) {
    $checked = "" ;
    if(isset($_POST["machine_id"]) && $_POST["machine_id"] == $id) { $checked = "checked" ; }
        echo "<input type=\"checkbox\" name=\"machine_id\" value=\"$id\" $checked /> $nom <br />";
}


après avoir fait des recherche, il faudrait que je mette name="machine_id[]"
Cependant, ma requete ne fonctionne plus avec ça...

Je ne vois donc pas trop comment faire...

Avez vous une idée de ce qu'il faut modifier pour que ça fonctionne ?

Merci
Modifié par syl09 (12 Jul 2013 - 16:22)
En rajoutant un foreach comme ceci, ça affiche bien les valeurs des checkbox sélectionnés :

foreach($_POST['machine_id'] as $machineId)
{
    # Requete : Liste des valeurs
    $req_valeur = "SELECT valeur_date, valeur_valeur, valeur_det_id, param_nom
                                    FROM parametres, valeurs as v LEFT OUTER JOIN detecteurs as d ON valeur_det_id=det_id
                                    WHERE param_id=valeur_param_id
                                    AND valeur_machine_id='$machineId' 
                                    AND valeur_param_id='$_POST[param_id]' 
                                    AND valeur_obj_id='$_POST[obj_id]'
                                    AND valeur_status_id='$_POST[status_id]'
                                    AND valeur_modes_id='$_POST[modes_id]'
                                    AND valeur_date>='".$dateDebut."' 
                                    AND valeur_date<='".$dateFin."' 
                                    $condition_y
                                    ORDER BY valeur_date, det_label";
    echo '<pre>';
print_r($req_valeur);
echo '</pre>';
 
    $resultSql = mysql_query($req_valeur) ;
 
    if(mysql_num_rows($resultSql) == 0) {
            die("<br /><center>Aucun resultat pour cette requete</center>") ;
    }
 
    $i = 0 ;
    while($valeur = mysql_fetch_array($resultSql)) {
            $series[$valeur["valeur_det_id"]][$valeur["valeur_date"]] .= $valeur["valeur_valeur"] ;
            if ($i == 0) {
                    $dateDebut = $valeur["valeur_date"] ;
            }
            $i++ ;
    }
}



En modifiant les catégories du graphique :

# Création des categories et séries pour le graph

$text_serie = "series: [" ;
foreach($series as $det=>$tab_val) {
	$visible = "false" ;
	if ($detecteurs[$det] == "BF" || $detecteurs[$det] == "Default" || count($series)==1 ) { $visible = "true" ; }
	if ($machineId == 1) {
	$text_serie .= "{
						visible: $visible,
						name: '$detecteurs[$det]',
						color : '#FF0000',
						data: [" ; 
	}
	if ($machineId == 2) {
	$text_serie .= "{
						visible: $visible,
						name: '$detecteurs[$det]',
						color : '#feb718',
						data: [" ; 
	}
	if ($machineId == 3) {
	$text_serie .= "{
						visible: $visible,
						name: '$detecteurs[$det]',
						color : '#00ceaa',
						data: [" ; 
	}
	foreach($tab_val as $date=>$val) {
		$text_serie .= "[Date.UTC(".SQLDateToDate("Y, n, j, h, m, s",$date)."),".$val."]," ;
	}
	$text_serie = substr($text_serie, 0, -1) ;
	$text_serie .= "]
					}, ";}





J'obtiens ceci :

http://img836.imageshack.us/img836/6558/fluf.jpg

Par contre les résultats du graphique ne sont pas bon, je voudrais obtenir 3 courbes différentes et non une seule courbe

en faite je voudrais différentié les différentes checkbox cochées.

En gros, qu'il y est 3 courbes sur le graphique !

Je pense qu'il faut modifier le foreach ..

Avez vous une idée ?

Merci encore