maxredphenix Messages : 60
|
Bonjour à tous, Suite à ma discussion avec un membre de ce forum, je créer cette discussion. J'ai un formulaire qui possède 3 fieldsets avec divers champs concernant la gestion d'appels pour mon boulot (j'ai besoin d'un programme pour me simplifier la vie) . Dans le derniers fieldset il y a un select nommée type_inter qui me permet d'afficher d'autres fieldsets, voila un apercu de mon formulaire: Pour le traitement du formulaire j'en suis arrivé à ceci mais cela ne fonctionne pas: <?php // Connexion à la base de donnée pour WAMP $host = "localhost"; $user = "root"; $passwd = ""; $database = "gestspie"; $link = @mysql_connect($host, $user,$passwd);
if(!$link){ die('Erreur de connexion au serveur'); }
$select_db = @mysql_select_db($database); if(!$select_db){ die('Erreur de connexion à la base'); } // Déclaration des variables $msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>"; $msg_ok = "Enregistrement reussi"; $message = $msg_erreur;
// Enregistrement des champs non remplis // Utilisation la fonction PHP empty() qui retourne: // -> "vrai" si la variable passée en paramètre est vide // -> "faux" dans le cas contraire. if (empty($_POST['num_appelant'])) $message .= "Le Numéro de l'appelant<br/>";
// Si le contenu de la variable $message et plus grand que celui de la variable $msg_erreur, // c'est que nous venons d'ajouter des champs non remplis donc on affiche un message d'erreur if (strlen($message) > strlen($msg_erreur)) { echo $message; } //Déclaration date_appel + Regex qui permet d'inverser l'année avec le jour pour un enregistrement correct dans mysql if(isset($_POST['date_appel'])) $date_appel = $_POST["date_appel"]; $Newdate_appel = ereg_replace('^([0-9]{1,2})-([0-9]{1,2})-([0-9]{2,4})$', '\\3-\\2-\\1', $date_appel);
//Déclaration des variables pour les fieldsets de base pour la table "appels" if(isset($_POST['num_appelant'])) $num_appelant = $_POST['num_appelant']; if(isset($_POST['heure_appel'])) $heure_appel = $_POST['heure_appel']; if(isset($_POST['media'])) $media = $_POST['media']; if(isset($_POST['nom_demandeur'])) $nom_demandeur = $_POST['nom_demandeur']; if(isset($_POST['batiment'])) $batiment = $_POST['batiment']; if(isset($_POST['systemes'])) $systemes = $_POST['systemes']; if(isset($_POST['service'])) $service = $_POST['service']; if(isset($_POST['local'])) $local = $_POST['local']; if(isset($_POST['type_inter'])) $type_inter = $_POST['type_inter']; if(isset($_POST['tps_inter_souhaite'])) $tps_inter_souhaite = $_POST['tps_inter_souhaite']; if(isset($_POST['objet_appel'])) $objet_appel = $_POST['objet_appel']; if(isset($_POST['commentaires'])) $commentaires = $_POST['commentaires']; //Déclaration des variables pour les fieldsets assistance_audio pour la table "assistance_audio" //On ne reprend pas les variables appels car déjà créer au-dessus if(isset($_POST['type_inter'])) $type_inter = $_POST['type_inter']; if(isset($_POST['date_debut_inter'])) $date_debut_inter = $_POST['date_debut_inter']; if(isset($_POST['heure_debut_inter'])) $heure_debut_inter = $_POST['heure_debut_inter']; if(isset($_POST['date_fin_inter'])) $date_fin_inter = $_POST['date_fin_inter']; if(isset($_POST['heure_fin_inter'])) $heure_fin_inter = $_POST['heure_fin_inter']; if(isset($_POST['intervenant1'])) $intervenant1 = $_POST['intervenant1']; if(isset($_POST['intervenant2'])) $intervenant2 = $_POST['intervenant2']; if(isset($_POST['intervenant_autre'])) $intervenant_autre = $_POST['intervenant_autre']; if(isset($_POST['entreprise'])) $entreprise = $_POST['entreprise']; if(isset($_POST['prestation_effectuer'])) $prestation_effectuer = $_POST['prestation_effectuer']; if(isset($_POST['commentaires'])) $commentaires = $_POST['commentaires']; //Déclaration des variables pour les fieldsets correctif pour la table "correctif" //Idem: on reprend que les valeurs non crée au-dessus if(isset($_POST['num_fim'])) $num_fim = $_POST['num_fim']; if(isset($_POST['ensemble'])) $ensemble = $_POST['ensemble']; if(isset($_POST['element'])) $element = $_POST['element']; if(isset($_POST['sous_element'])) $sous_element = $_POST['sous_element']; if(isset($_POST['surete'])) $surete = $_POST['surete']; if(isset($_POST['duree_inter'])) $duree_inter = $_POST['duree_inter']; if(isset($_POST['tps_acces_signature'])) $tps_acces_signature = $_POST['tps_acces_signature']; if(isset($_POST['heure_cloture_panne'])) $heure_cloture_panne = $_POST['heure_cloture_panne']; if(isset($_POST['tps_inter_souhaite'])) $tps_inter_souhaite = $_POST['tps_inter_souhaite']; if(isset($_POST['dysfonctionnement'])) $dysfonctionnement = $_POST['dysfonctionnement']; if(isset($_POST['parametre_bf'])) $parametre_bf = $_POST['parametre_bf']; if(isset($_POST['consignes_inter'])) $consignes_inter = $_POST['consignes_inter']; //Déclaration des variables pour les fieldsets devis pour la table "devis" //idem //Pour le moment la table n'est pas défini, en attente des type de champs à mettre dans le formulaire //if(isset($_POST[''])) $ = $_POST[''];
//Déclaration des variables pour les fieldsets exploitation pour la table "exploitation" //idem if(isset($_POST['type_operation'])) $type_operation = $_POST['type_operation']; if(isset($_POST['objet'])) $objet = $_POST['objet']; if(isset($_POST['prestation_effectuee'])) $prestation_effectuee = $_POST['prestation_effectuee']; // Si les champs sont bien remplis, on peut insérer leurs valeurs dans la base de données MySQL. // Utilisation de mysql_real_escape_string() qui protège les données avant insertion et notamment // les apostrophes, guillemets, etc... pour protéger des attaques par injection SQL. // La boucle foreach() va passer toutes la variables $_POST envoyées par le formulaire en revue. // Pour chacune d'elle nous allons créer une variable spécifique avec $$index, nettoyer sa valeur avec trim() // (en enlevant notamment les espaces de fin) et sécuriser sa valeur avec mysql_real_escape_string(). else{ foreach($_POST as $index => $valeur){ $index = mysql_real_escape_string(trim($valeur)); } // Insérer les données dans la table "appels" avec une requête sql de type "INSERT" et la fonction mysql_query(). // Vérification que la requête s'est bien effectuée avec la valeur de retour $res // Si c'est le cas, on affiche $msg_ok, sinon on affiche l'erreur qui a eu lieu dans MySQL // Le premier "" dans values correspont dans la table à l'ID qui est automatiquement incrémenté $sql="INSERT INTO appels(id, num_appelant, date_appel, heure_appel, media, nom_demandeur, batiment, systemes, service, local, type_inter, tps_inter_souhaite, objet_appel, commentaires) VALUES ('','$num_appelant','$date_appel','$heure_appel','$media','$nom_demandeur','$batiment','$systemes','$service','$local','$type_inter','$tps_inter_souhaite','$objet_appel','$commentaires')"; //On enregistre les champs des fieldsets correspondant au choix 1 : Fieldset audio if($_POST["type_inter"] == "Assistance Audio"){ $sql="INSERT INTO assistance_audio(id_audio, id_appel, type_inter, date_debut_inter, heure_debut_inter, date_fin_inter, heure_fin_inter, intervenant1, intervenant2, intervenant_autre, entreprise, prestation_effectuer, commentaires) VALUES ('','&id_appel', '&type_inter', '&date_debut_inter', '&heure_debut_inter', '&date_fin_inter', '&heure_fin_inter', '&intervenant1', '&intervenant2', '&intervenant_autre', '&entreprise', '&prestation_effectuer', '&commentaires')";
//On enregistre les champs des fieldsets correspondant au choix 2 : Fieldset correctif else if($_POST["type_inter"] == "Correctif"){ $sql="INSERT INTO correctif(id_correctif, id_appel, num_fim, date_appel, heure_appel, nom_demandeur, service, batiment, local, type_inter, systemes, ensemble, element, sous_element, surete, date_debut_inter, duree_inter, tps_acces_signature, date_fin_appel, heure_fin_appel, heure_cloture_panne, tps_inter_souhaite, intervenant1, intervenant2, intervenant_autre, dysfonctionnement, parametre_bf, consignes_inter, commentaires) VALUES ('','&id_appel', '&id_appel', '&num_fim', '&date_appel', '&heure_appel', '&nom_demandeur', '&service', '&batiment', '&local', '&type_inter', '&systemes', '&ensemble', '&element', '&sous_element', '&surete', '&date_debut_inter', '&duree_inter', '&tps_acces_signature', '&date_fin_appel', '&heure_fin_appel', '&heure_cloture_panne', '&tps_inter_souhaite', '&intervenant1', '&intervenant2', '&intervenant_autre', '&dysfonctionnement', '¶metre_bf', '&consignes_inter', '&commentaires')"; } //On enregistre les champs des fieldsets correspondant au choix 3 : Fieldset devis else if($_POST["type_inter"] == "Demande de Devis"){ $sql="INSERT INTO devis(id_devis, id_appel, type_inter, commentaire) VALUES ('','&id_appel', '&type_inter', '&commentaire')"; } //On enregistre les champs des fieldsets correspondant au choix 4 : Fieldset exploitation else if($_POST["type_inter"] == "Demande d'Intervention"){ $sql="INSERT INTO exploitation(id_exploitation, id_appel, type_exploitation, nom_demandeur, service, batiment, local, date_debut_inter, duree_inter, tps_acces_signature, date_fin_inter, heure_fin_inter, heure_cloture_panne, tps_inter_souhaite, intervenant1, intervenant2, intervenant_autre, type_operation, objet, prestation_effectuee) VALUES ('','&id_appel', '&type_exploitation', '&nom_demandeur', '&service', '&batiment', '&local', '&date_debut_inter', '&duree_inter', '&tps_acces_signature', '&date_fin_inter', '&heure_fin_inter', '&heure_cloture_panne', '&tps_inter_souhaite', '&intervenant1', '&intervenant2','&intervenant_autre', '&type_operation', '&objet', '&prestation_effectuee')"; } $res=mysql_query($sql); if ($res) { echo $msg_ok; // Redirection du visiteur vers la page de créat header('Location: gest_appels_tableau.php'); } else { echo mysql_error(); } } // Enregistrement de la création de l'appel dans un json pour le calendrier Jquery-Week-calendar $sql = mysql_query("SELECT * FROM appels"); $results = array(); while($row = mysql_fetch_array($sql)) { $calendrier[] = array( $date_appel = $row['start']; $date_appel = $row['end']; $type_inter = $row['title']; ); } $json = json_encode($calendrier); } ?> Si quelqu'un peut m'aider je suis preneur. Merci d'avance maxredphenix |
maxredphenix Messages : 60
|
Merci pour ta réponse, J'avais pas fait gaffe au "&" je sais pas pourquoi parce que je sais en plus qu'il faut mettre des dollars. Pour le else if je pensais qu'il fallait les inclure dans le premier if donc l'accolade de fermeture se trouvait à la fin de la boucle du dernier else if. Ca me donne maintenant ceci: else{ foreach($_POST as $index => $valeur){ $index = mysql_real_escape_string(trim($valeur)); } // Insérer les données dans la table "appels" avec une requête sql de type "INSERT" et la fonction mysql_query(). // Vérification que la requête s'est bien effectuée avec la valeur de retour $res // Si c'est le cas, on affiche $msg_ok, sinon on affiche l'erreur qui a eu lieu dans MySQL // Le premier "" dans values correspont dans la table à l'ID qui est automatiquement incrémenté $sql="INSERT INTO appels(id, num_appelant, date_appel, heure_appel, media, nom_demandeur, batiment, systemes, service, local, type_inter, tps_inter_souhaite, objet_appel, commentaires) VALUES ('','$num_appelant','$date_appel','$heure_appel','$media','$nom_demandeur','$batiment','$systemes','$service','$local','$type_inter','$tps_inter_souhaite','$objet_appel','$commentaires')"; //On enregistre les champs des fieldsets correspondant au choix 1 : Fieldset audio if($_POST["type_inter"] == "Assistance Audio"){ $sql="INSERT INTO assistance_audio(id_audio, id_appel, type_inter, date_debut_inter, heure_debut_inter, date_fin_inter, heure_fin_inter, intervenant1, intervenant2, intervenant_autre, entreprise, prestation_effectuer, commentaires) VALUES ('','$id_appel', '$type_inter', '$date_debut_inter', '$heure_debut_inter', '$date_fin_inter', '$heure_fin_inter', '$intervenant1', '$intervenant2', '$intervenant_autre', '$entreprise', '$prestation_effectuer', '$commentaires')"; } //On enregistre les champs des fieldsets correspondant au choix 2 : Fieldset correctif else if($_POST["type_inter"] == "Correctif"){ $sql="INSERT INTO correctif(id_correctif, id_appel, num_fim, date_appel, heure_appel, nom_demandeur, service, batiment, local, type_inter, systemes, ensemble, element, sous_element, surete, date_debut_inter, duree_inter, tps_acces_signature, date_fin_appel, heure_fin_appel, heure_cloture_panne, tps_inter_souhaite, intervenant1, intervenant2, intervenant_autre, dysfonctionnement, parametre_bf, consignes_inter, commentaires) VALUES ('','$id_appel', '$id_appel', '$num_fim', '$date_appel', '$heure_appel', '$nom_demandeur', '$service', '$batiment', '$local', '$type_inter', '$systemes', '$ensemble', '$element', '$sous_element', '$surete', '$date_debut_inter', '$duree_inter', '$tps_acces_signature', '$date_fin_appel', '$heure_fin_appel', '$heure_cloture_panne', '$tps_inter_souhaite', '$intervenant1', '$intervenant2', '$intervenant_autre', '$dysfonctionnement', '$parametre_bf', '$consignes_inter', '$commentaires')"; } //On enregistre les champs des fieldsets correspondant au choix 3 : Fieldset devis else if($_POST["type_inter"] == "Demande de Devis"){ $sql="INSERT INTO devis(id_devis, id_appel, type_inter, commentaire) VALUES ('','$id_appel', '$type_inter', '$commentaire')"; } //On enregistre les champs des fieldsets correspondant au choix 4 : Fieldset exploitation else if($_POST["type_inter"] == "Demande d'Intervention"){ $sql="INSERT INTO exploitation(id_exploitation, id_appel, type_exploitation, nom_demandeur, service, batiment, local, date_debut_inter, duree_inter, tps_acces_signature, date_fin_inter, heure_fin_inter, heure_cloture_panne, tps_inter_souhaite, intervenant1, intervenant2, intervenant_autre, type_operation, objet, prestation_effectuee) VALUES ('','$id_appel', '$type_exploitation', '$nom_demandeur', '$service', '$batiment', '$local', '$date_debut_inter', '$duree_inter', '$tps_acces_signature', '$date_fin_inter', '$heure_fin_inter', '$heure_cloture_panne', '$tps_inter_souhaite', '$intervenant1', '$intervenant2','$intervenant_autre', '$type_operation', '$objet', '$prestation_effectuee')"; } $res=mysql_query($sql); if ($res) { echo $msg_ok; // Redirection du visiteur vers la page de créat header('Location: gest_appels_tableau.php'); } else { echo mysql_error(); } // Enregistrement de la création de l'appel dans un json pour le calendrier Jquery-Week-calendar $sql = mysql_query("SELECT * FROM appels"); $results = array(); while($row = mysql_fetch_array($sql)) { $calendrier[] = array( $date_appel = $row['start']; $date_appel = $row['end']; $type_inter = $row['title']; ); } $json = json_encode($calendrier); } L'enregistrement se fait sans soucis et la redirection est bonne (il me manque plus qu'a mettre un petit message pour dire que l'enregistrement est reussi avec une tempo de 3s avant la redirection). Par contre ce qui est bizarre, c'est que ça enregistre correctement dans la table "appels" sauf le choix du select qui n'est pas enregistrer dans la table, mais il y a aucun enregistrement dans la table correspondant au choix qu'on à fait dans le select: par exemple si je choisi correctif, les fieldset apparaissent, je les remplis mais rien se s'enregistre dans la table correctif...... En tout cas encore merci |