2 つのページがあり、ページを更新せずにいくつかのタスクを実行するために AJAX を使用しています。問題は、Internet Explorer を使用すると、値が「?」になることです。私がやろうとしているのは、カタログを作成することです。ユーザーが文字をクリックすると、他のページで SQL タスクが実行され、最初のページに結果が表示されます。
先頭ページ:
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
function loadXMLDoc(myLink)
{
alert ("OK");
var xmlhttp;
alert (myLink);
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4)
{
document.getElementById("information").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","select.php?data=" + myLink,true);
xmlhttp.send();
}
</script>
</head>
<body>
<center>
<font size = "4">
<a href = "#" onClick = "loadXMLDoc('Ι'); return false;">Ι </a>
</font>
</center>
<div id = "information">
</div>
</body>
</html>
2 番目のページ:
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?php
//var_dump($_GET);
//exit();
session_start();
$find = $_GET["data"];
$find = iconv("utf8", "utf8", $find);
echo "New find = " . $find;
$find = iconv("utf8", "utf8", "Ι"); //Greek character
echo "<br/>Newest find = " . $find;
?>
最初の 'echo' は疑問符 ('?') を出力し、2 番目の 'echo' は適切な文字を出力します。この問題は Internet Explorer でのみ発生し、他のすべてで機能します。「var_dump」を使用すると、次のようになります。
Internet Explorer: 配列(1) { ["データ"]=> 文字列(1) "?" }
Chrome と Mozilla: array(1) { ["data"]=> string(2) "Ι" }
AJAX ではまったく問題ありません。
何か助けてください。