PHP、HTML、Javascript、AJAX、JQuery のコードである Web アプリケーションに取り組んでいます。
MySQL データベースにリンクされています。
問題は次のとおりです。
データベース内のテキストのほとんどはフランス語であり、'é'、'ù'、'à' などの特殊文字は私のページでは � として表示されます。
注: 詳細情報を提供するために、アプリケーションのフォームに「é」を入力すると、データベースに「Ã」が書き込まれ、データベースに「é」を挿入すると、アプリケーションに として表示されます。
詳細情報: 最初は「é」が正しく表示されます。しかし、DataBase から更新する AJAX 関数を使用すると、.</p>
AJAX コード:
function getXMLHttpRequest()
{
var xhr = null;
if (window.XMLHttpRequest || window.ActiveXObject)
{
if (window.ActiveXObject)
{
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else
{
xhr = new XMLHttpRequest();
}
}
else
{
alert("Votre navigateur ne supporte pas le format des données en temps réel...");
return null;
}
return xhr;
}
function request()
{
var xhr = getXMLHttpRequest();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && (xhr.status == 200 || shr.status == 0))
{
readData(xhr.responseXML);
}
};
xhr.open("POST", "handlingData.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(null);
}
function readData(Data)
{
var XMLtr = Data.getElementsByTagName('tr');
for(var i = 0; i < XMLtr.length; i++)
{
var HTMLtr = document.getElementById(XMLtr[i].getAttribute('id'));
if(HTMLtr != null)
{
var XMLtd = XMLtr[i].getElementsByTagName('td');
for(var e = 0; e < XMLtd.length; e++)
{
var HTMLtd = HTMLtr.cells[e];
var HTMLtdReplace = document.createElement('td');
HTMLtdReplace.setAttribute('id', XMLtd[e].getAttribute('id'));
var InnerHTML = document.createTextNode(XMLtd[e].getAttribute("value"));
HTMLtdReplace.appendChild(InnerHTML);
HTMLtr.replaceChild(HTMLtdReplace, HTMLtd);
}
}
}
}
コードの残りの部分は、PHP を使用した単純な HTML テーブルです。
<body onload="var int = self.setInterval(function(){request(readData);}, 1000);">
<div id="divWrapper">
<div id="divBgd">
<?php
if($_SESSION['User'] == null || !isset($_SESSION['User']))
{
header("Location: ../Index.php");
}
include("Header2.php");
include("Navigation.php");
include("divData.php");
echo "<div style='clear: both;'></br></div>";
echo "<div style='clear: both;'></br></div>";
?>
</div>
<div style='clear: both;'></br></div>
</div>
<div style='clear: both;'></br></div>
</body>
divData.php は次のとおりです。
<div id="divData">
<table id="tblData" name="tblData">
<tr>
<th>Description</th>
<th>Données</th>
<th>Unitées</th>
<th>Dernière mise à jour</th>
</tr>
<?php
$cn = new cConnexion("127.0.0.1", "app_windows", "root", "jrt12345");
if($cn->DBConnexion())
{
$getData = $cn->Select("SELECT rtd_dateTime, rtd_tagId, rtd_value, tag_description, tag_units FROM realTimeData INNER JOIN tag ON tag.tag_id = realTimeData.rtd_tagId INNER JOIN plc ON plc.plc_id = tag.tag_plcId WHERE plc_id = ".$_SESSION['PLC']." AND tag_realTimeData = 1 AND tag_alarmeData = 0");
if($getData != null)
{
while($Data = $getData->fetch())
{
echo '<tr id="'.$Data['rtd_tagId'].'">';
echo '<td id="Description">'.$Data['tag_description'].'</td>';
echo '<td id="Value">'.$Data['rtd_value'].'</td>';
echo '<td id="Units">'.$Data['tag_units'].'</td>';
echo '<td id="Date">'.$Data['rtd_dateTime'].'</td>';
echo '</tr>';
}
}
}
?>
</table>
<a id="cmdRetour" href="Accueil.php">Accueil</a>
ありがとうございました !