Javascript, PHP, AJAX Problème de charset!

Statut
N'est pas ouverte pour d'autres réponses.

k o D

Elite
Bonsoir à vous.
Je viens encore une fois solliciter votre aide... et oui :oops:

Cette fois-ci j'ai un problème de charset... je vous explique ce que je veux faire.

J'ai un tableau contenant des données initialement rempli par PHP. J'ai une fonction de recherche sur le dit tableau qui s'occupe d'envoyer une requête AJAX à une page PHP.
Cette page PHP écrit le code HTML à remplacer dans le tableau (oui je sais c'est pas des plus beau...)

Seulement ce qu'il écrit ne correspond bien entendu pas à ce que je lui ai demandé vu qu'il place l'espèce de losange avec le "?" à la place de tous les accents ou caractères spéciaux.
Et bon ben bien entendu je veux éviter cela :)

Voici une partie de mon javascript:

function search() {
status = document.getElementById("status").value;
company = document.getElementById("company").value;
month = document.getElementById("month").value;
year = document.getElementById("year").value;
var objet = '{"status":"'+status+'","company":"'+company+'","month":"'+month+'","year":"'+year+'"}';
http = createRequestObject();
http.open('post', 'indexInvoice.php', true);
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http.onreadystatechange = handleSearchReturn;
http.send('search='+objet);
}
function handleSearchReturn() {
if(http.readyState == 4) {
if(http.status == 200) {
document.getElementById("tabInvoice").innerHTML=http.responseText;
} else {
alert('La connexion à la page n\'est plus valable!');
}
}
}

Et voilà ce que ma page PHP appelée répond:

PHP:
	$arrayRep = json_decode($_POST['search'],true);
	$arrayInvoice = Invoice::getInvoices($arrayRep,$compte);
	$tab = $headerTab;
	for ($i=0,$count=count($arrayInvoice);$i<$count;$i++) {
		$tab .='<tr>';
		$tab .='<td>'.$arrayInvoice[$i]->getInvoiceNumber().'</td>';
		$tab .='<td>'.$arrayInvoice[$i]->getCompany().'</td>';
		$tab .='<td>'.$arrayInvoice[$i]->getInvoiceStatus().'</td>';
		$tab .='<td>'.$arrayInvoice[$i]->getInvoiceDateEU().'</td>';
		$tab .='<td><input type="button" value="Générer Duplicata" onclick="genPDF('.$arrayInvoice[$i]->getIdCRM().',\'Duplicata\')"/></td>';
		$tab .='<td><input type="button" value="Générer avec texte" onclick="genPDF('.$arrayInvoice[$i]->getIdCRM().',\'xxx\')"/></td>';
		$uri = Invoice2PDF::getURIPDF($arrayInvoice[$i]->getInvoiceDate(),$arrayInvoice[$i]->getCompany(),$arrayInvoice[$i]->getInvoiceNumber());
		if (file_exists($uri)) {
			$url = Invoice2PDF::getURLPDF($arrayInvoice[$i]->getInvoiceDate(),$arrayInvoice[$i]->getCompany(),$arrayInvoice[$i]->getInvoiceNumber());
			$tab .='<td><a href="'.$url.'" target="_blank"><img src="img/pdf.png" border="0"/></a></td>';
		} else {
			if ($arrayInvoice[$i]->getInvoiceStatus() == 'Created') {
				$tab .='<td><a href="javascript:genPDF('.$arrayInvoice[$i]->getIdCRM().',\'Aperçu\')"><img src="img/apercu.png" border="0"/></a></td>';
			} else {
				$tab .='<td><img src="img/impossible.png"/></td>';
			}
		}
		$tab .='</tr>';
	}
	$tab .= '</table>';
	echo $tab;
	return;
Bien entendu $headerTab est déclaré plus haut mais bon çà ce n'est pas important :-D
Merci d'avance!
 

ozilrit

Elite
XMLHttpMachin espère de l'UTF-8.
 
1er
OP
k o D

k o D

Elite
utf8_encode — Convertit une chaîne ISO-8859-1 en UTF-8

tring utf8_encode ( string $data );


http://electron-libre.fassnet.net/utf8.php

Voici j'èspère que cela pourra t'aider.
Franchement je vais aller me pendre... j'utilise ces utf8_encode/decode partout et je ne sais pas hier j'avais pas la tête à çà...

Le pire c'est que je me dis ce matin avant d'arriver au stage "Hey mais en fait utf8_encode() et c'est réglé" puis "Bah non pas possible c'est trop con j'y aurai pensé hier" :D
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut