Bonjour la liste !
Je suis en train de faire un dictionnaire en ligne avec un champ de saisie des premières lettres du mot recherché qui déclenche l'apparition d'une liste de mots correspondants. Vous pouvez visualiser la chose ici. Si on tape bara ou abad (essayez !), pas de problème, mais si on rentre un caractère accentué ou un tilde, la liste n'apparaît pas. Exemple : loagañ ; rendu au ñ, la liste s'efface.
Pour l'instant j'ai un mélange innommable de ISO et de UTF8 ; j'ai donc décidé de tout passer en UTF-8 (fichiers sources, champs de la base de données, déclarations PHP, etc.). En localhost pour l'instant. Ajax ne fonctionne plus du tout, dès que je tape une lettre, j'ai droit à une fenêtre :
Erreur de lecture de la r?ponse : TypeError: Cannot read property 'documentElement' of null (Le ? est d'origine)
Voici le fichier javascript :
et le fichier php concerné :
J'ai essayé de remplacer ISO par UTF-8 dans cette ligne :
mais sans succès.
Merci de votre attention,
Kristen
Modifié par kristen (02 Dec 2018 - 08:49)
Je suis en train de faire un dictionnaire en ligne avec un champ de saisie des premières lettres du mot recherché qui déclenche l'apparition d'une liste de mots correspondants. Vous pouvez visualiser la chose ici. Si on tape bara ou abad (essayez !), pas de problème, mais si on rentre un caractère accentué ou un tilde, la liste n'apparaît pas. Exemple : loagañ ; rendu au ñ, la liste s'efface.
Pour l'instant j'ai un mélange innommable de ISO et de UTF8 ; j'ai donc décidé de tout passer en UTF-8 (fichiers sources, champs de la base de données, déclarations PHP, etc.). En localhost pour l'instant. Ajax ne fonctionne plus du tout, dès que je tape une lettre, j'ai droit à une fenêtre :
Erreur de lecture de la r?ponse : TypeError: Cannot read property 'documentElement' of null (Le ? est d'origine)
Voici le fichier javascript :
var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject()
{
var xmlHttp;
try
{
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) { }
}
if (!xmlHttp)
alert("Erreur de création de l'objet XMLHttpRequest.");
else
return xmlHttp;
}
function process()
{
if (xmlHttp)
{
try
{
name = encodeURIComponent(document.getElementById("ger").value);
if (name == '') {name = 'x'};
xmlHttp.open("GET", "testajax.php5?name=" + name, true);
xmlHttp.onreadystatechange = handleRequestStateChange;
xmlHttp.send(null);
}
catch (e)
{
alert("Connexion au serveur impossible :\n" + e.toString());
}
}
}
function handleRequestStateChange()
{
if (xmlHttp.readyState == 4)
{
if (xmlHttp.status == 200 || xmlHttp.status == 304)
{
try
{
handleServerResponse();
}
catch(e)
{
alert("Erreur de lecture de la réponse : " + e.toString());
}
}
/* else
{
alert("Problème d'obtention des données :\n" + xmlHttp.statusText);
}
*/
}
}
function handleServerResponse()
{
var xmlResponse = xmlHttp.responseXML;
xmlRoot = xmlResponse.documentElement;
kinnigArray = xmlRoot.getElementsByTagName("kinnig");
var html = "";
for (var i=0; i<kinnigArray.length; i++)
{html += '<a onclick="onKlik(this.textContent, 0)">' + kinnigArray.item(i).firstChild.data + '</a>';}
var xmlResponse = xmlHttp.responseText;
var myDiv = document.getElementById("goulakaat");
myDiv.innerHTML = html;
}
et le fichier php concerné :
<?php
header('Content-Type: text/xml ; charset = utf-8');
include ('connect.inc.php');
$dom = new DOMDocument();
$respont = $dom->createElement('respont');
$dom->appendChild($respont);
$name = $_GET['name'];
$kinnigou = mysql_query("SELECT poz FROM ajaks WHERE poz LIKE '".$name."%"."' LIMIT 20");
while ($linenn = mysql_fetch_array($kinnigou))
{
$kinnig = $dom->createElement('kinnig');
$encoded=htmlentities ("$linenn[poz]", ENT_QUOTES, 'ISO-8859-1');
$kinnigText = $dom->createTextNode("$encoded");
$kinnig->appendChild($kinnigText);
$respont->appendChild($kinnig);
}
$xmlString = $dom->saveXML();
echo $xmlString;
mysql_close();
?>
J'ai essayé de remplacer ISO par UTF-8 dans cette ligne :
$encoded=htmlentities ("$linenn[poz]", ENT_QUOTES, 'ISO-8859-1');
mais sans succès.
Merci de votre attention,
Kristen
Modifié par kristen (02 Dec 2018 - 08:49)