Page 1 sur 1

Traiter un formulaire avec php et ajax

Posté : 28 mai 2016, 18:52
par Gaia_FL
Bonjour à tous,

J'ai un formulaire html avec liste déroulante submit par une fonction ajax ainsi qu'un fichier de traitement pour afficher les données mysql.

Mon formulaire :

Code : Tout sélectionner

<!DOCTYPE html> <html> <head> <title>Les pronostics</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="./js/jquery-1.12.0.js"></script> <script type="text/javascript" src="./js/jquery.datepicker.js"></script> <script type="text/javascript"> //Function de séléction function selectChoice() { var container = $('#top_gains_select'); var selector = $('#choix_faitsmarquants'); var url = 'traitement_faits_marquants.php'; selector.change(function(){ var value = $(this).val(); arraySelect = new Array;$("select option:selected").each(function() { arraySelect.push(this.value); }); $.ajax({ url : url, type : 'post', data :{'choix_faitsmarquants[]' : arraySelect}, success : function(data){ container.html(data);//ici on envoie le résultat de la réponse dans la div } }); }); } $(document).ready(function(){ selectChoice(); }); </script> <style> body{ margin:0; } </style> </head> <body> <div class="top_gains_jour" id="top_gains_jour"> <?php $l= setlocale(LC_TIME, FRA); setlocale(LC_TIME, $l); $date_fr= strtotime($date_selection); ?> <form name="faits_marquants" method="post" action="#" id="chgains"> <select style="font-size:0.8rem; color:white;" name="choix_faitsmarquants" id="choix_faitsmarquants" onChange="fonction_filtrage(this.value)"> <option class="UName" value="1"></option> <option class="UName" value="2"></option> <option class="UName" value="3"></option> </select> </form> <div id="top_gains_select" class="top_gains_select"> </div> </div> </body> </html>
Mon fichier de traitement:

Code : Tout sélectionner

<?php session_start(); ?> <!DOCTYPE html> <?php include_once 'db_connect.php'; ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Fichier de traitement du formulaire "Pronostics"</title> </head> <body> <?php $sql_sg=$connexion->query("SELECT DISTINCT LIBPARI, COUBASE, SOLBASE, NUMR, NUMC FROM courses JOIN strategiesappliquees on (courses.IDCOURSE=strategiesappliquees.IDCOURSE) WHERE SOLBASE>0 AND DATEC='2015-12-02' AND LIBPARI='Simple gagnant' ORDER BY SOLBASE DESC LIMIT 2" ); //La condition du formulaire if(isset($_POST['choix_faitsmarquants'])){ $choix=$_POST["choix_faitsmarquants"]; $_SESSION["choix_faitsmarquants"]=$choix; if($choix==1){ while ($resultat=$sql_sg->fetch()){ ?> <?php echo $resultat["LIBPARI"]."<br>R".$resultat["NUMR"]."C".$resultat["NUMC"]." MISE ".number_format($resultat["COUBASE"],2)." € GAINS = ".number_format($resultat["SOLBASE"]+$resultat["COUBASE"],2)." €"?></p> <?php } } } $connexion=null; ?> </body> </html>
Mon problème est que je n'arrive pas à récupérer la valeur post de mon select dans le if de mon fichier de traitement.

J'ai pourtant vérifié la syntaxe mais aucun résultats lors de la selection.

Je voudrais donc obtenir les résultats tels que :

si $_POST["choix_faitsmarquants"]==1 alors reqsql1
si $_POST["choix_faitsmarquants"]==2 alors reqsql2
si $_POST["choix_faitsmarquants"]==3 alors reqsql3

Des idées ?

Re: Traiter un formulaire avec php et ajax

Posté : 29 mai 2016, 16:50
par abdes
j'ai pa bien compris mais je pense que les donnes ne sont pas poster par submit qui va faire passer les $_POST

Re: Traiter un formulaire avec php et ajax

Posté : 31 mai 2016, 12:05
par Naroth
Bonjour Gaia_FL,

1. Tu appelles deux fonctions pour une même action

Celle-ci est appelé quand on change la valeur de la liste déroulante

Code : Tout sélectionner

selector.change(function(){ var value = $(this).val(); arraySelect = new Array;$("select option:selected").each(function() { arraySelect.push(this.value); });
et ici le onChange est fait exactement au même moment

Code : Tout sélectionner

<select style="font-size:0.8rem; color:white;" name="choix_faitsmarquants" id="choix_faitsmarquants" onChange="fonction_filtrage(this.value)">
Peux-tu me dire si dans la console de ton navigateur (la touche f12) tu vois une erreur comme celle-ci :
(index):45 Uncaught ReferenceError: fonction_filtrage is not defined
2. La fonction var_dump (php) pour debugger

Je t'invite également à utiliser la fonction var_dump php pour voir ce que contient ta variable POST dans le fichier traitement_faits_marquants.php

Code : Tout sélectionner

var_dump($_POST);