Bonjour, depuis un script jquery (DataTables) je passe un nom de mois en post à une page PHP.
Tout se passe bien bien Sauf pour le mois d'Août (à cause de l'accent) et je ne comprends rien du tout à ce qu'il se passe.
Tout d'abord, voici le js :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
[...] 
ajax: 'php/listing_tables.php?nom_utilisateur='+$("#nom_utilisateur").val()+'&date_depense='+$("#date_depense").val();
[...]
Voici une partie de la page listing_tables.php lancée en ajax :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php session_start(); 
header( 'content-type: text/html; charset=utf-8' );
$date_depense=(isset($_GET['date_depense'])?$_GET['date_depense']:'');	
include "../../../bin/cnx/cnx.php";     
$requete = "select ID_FACTURE FROM TBL_FACTURE"
$requete .="WHERE upper(TO_CHAR(TO_DATE(DATE_FACTURE,'DD/MM/YYYY HH24:Mi'),'MM/YYYY')) = TO_CHAR(TO_DATE(('".$date_depense."','Mon YYYY'),'MM/YYYY') ";
include "../../../bin/cnx/ordres.php";   
<BOUCLE>
echo "<br>date_depense	".$date_depense,
"<br>requete	"$requete;
include "../../../bin/cnx/dcnx.php";    
?>
Dans le debug de Chrome, tout à l'air ok, et quand je regarde les flux (network) je lis ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
"<br>date_depense	":"Août 2016"
"<br>requete	":"SELECT distinct DATE_FACTURE, LIB_PRODUIT, FOURNISSEUR, MONTANT, ID_FACTURE 
			FROM   (select  DATE_FACTURE
				, TP.LIB_PRODUIT
				, TFO.LIB_FOURNISSEUR||' ('||ADRESSE_FOURNISSEUR||')' AS FOURNISSEUR
				, TF.MONTANT AS MONTANT
				, TF.ID_FACTURE
				, TS.NUM_AGENT
		from     TBL_GESTRES_FACTURE        TF  
				, TBL_GESTRES_PRODUIT       TP  
				, TBL_GESTRES_FOURNISSEUR   TFO
				, TBL_GESTRES_AGENT         TT
				, TBL_AGENTS                TS
		where   TF.ID_PRODUIT        = TP.ID_PRODUIT 
		AND     TF.ID_FOURNISSEUR    = TFO.ID_FOURNISSEUR
		AND     TF.ID_AGENT = TT.NUM_AGENT
		AND     TT.NUM_AGENT = TS.NUM_AGENT
		AND     TS.ANTENNE||NVL(TS.PROXIMITE,'0') like '00'
                AND 	upper(TO_CHAR(TO_DATE(DATE_FACTURE,'DD/MM/YYYY HH24:Mi'),'MM/YYYY')) 
                        = TO_CHAR(TO_DATE(('Août 2016','Mon YYYY'),'MM/YYYY') ) WHERE 1=1 "
mais la requête ne me renvoie rien alors que si je la copie dans toad j'ai bien une ligne.

Depuis le debug de chrome, je lance la page appelée depuis le js dans un onglet du navigateur (clic droit + "open link in a new tab") :
J'ai donc ceci :
[/CODE]

et dans le Network Chrome, je lis
"date_depense":"Ao\u00fbt"
soit le û au format unicode ...

Dans la page PHP, j'ai donc essayé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$date_depense=htmlentities((isset($_GET['date_depense'])?$_GET['date_depense']:''))
j'obtient
Août
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$date_depense=htmlentities(utf8_encode((isset($_GET['date_depense'])?$_GET['date_depense']:'')));
j'obtient
AoÃ
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$date_depense=htmlentities(utf8_decode((isset($_GET['date_depense'])?$_GET['date_depense']:'')));
j'obtient
Août
mais en chargeant tout depuis le JS, la requête ne renvoie rien, et dans le débug je lis que
"date_depense":"Ao&ucirc;t"
Mes fichiers js et php sont en utf8 sans BOM.
Je craque ...
HELP ME PLEASE !