私はフォームを持っており、英語からスペイン語に切り替えることができる必要があります。これを行うには、を使用してい <a href ="page.php?lan=SP">
ます。私のコードでは:
<?php
if($_GET['lan'] == 'SP'){
session_start();
$_SESSION['language'] = $_GET['lan'];
?> (spanish form)
<?php
}else{
session_start();
$_SESSION['language'] = 'EN';
?> (english form)
}
フォームにテキストボックスがあります:
<input name = "PromoCode" type = "text" id = "code" style ="width:250px" onkeyup="PCcheck(this.value)" maxlength="10">
入力したコードが有効なコードであるかどうかを示すテキストで更新される段落:
<p name =" " id="PC" style="width:250px"></p>
PCcheck(this.value) は、ユーザーがボックスをクリックするたびに、テキスト ボックスの値がデータベースのコードと一致することを確認するために ajax 呼び出しを行います。
私が使用するすべてのブラウザ(サファリ、クローム、ファイアフォックス)でこれは機能します。IEでは最初は完全に機能しますが、リンクをクリックして言語を変更するとフォームが読み込まれますが、テキストを結び付けると関数が呼び出されますが、pタグは更新されません。私の関数は次のようになります。
function PCcheck(pc)
{
//alert(pc);
if((/^\s*$/).test(pc))
{
}else{
$.ajax({url:"check.php",
type:"GET",
data:'code=' +pc,
success:function(result)
{
if(result =='Valid' || result == 'V´lido')
{
document.getElementById("PC").innerHTML = "<font color ='green'>" + result + "</font>";
}
else
{
document.getElementById("PC").innerHTML = "<font color ='red'>" + result + "</font>";
}
}
});
}
check.php は次のようになります。
<?php
session_start();
$lan = $_SESSION['language'];
include('../db.php');
$code = $_GET['code'];
$query = "SELECT *
FROM table
Where Code = '$code'";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
if($row['Code'] == ''){
if($lan == 'EN'){
echo("Invalid Code");
}else{
echo('Código no válido');
}
}
else if($row['FirstName'] != ''){
if($lan == 'EN'){
$response = 'Used on ' . $row['RDate'];
}else{
$response = 'Utilizado en ' . $row['RDate'];
}
echo($response);
}
elseif($row['Date'] < $date){
if($lan == 'EN'){
echo('Expired');
}else{
echo 'Expirado';
}
}
else{
if($lan == 'EN'){
echo('Valid');
}else{
echo 'Válido';
}
}
私が言ったように、それはすべてのブラウザーで動作し、IE は初期ロードで動作しますが、言語を変更すると動作しません (フォームは正しい言語で読み込まれ、関数が呼び出されますが、ajax 呼び出しが発生したようには見えません)。関係のないコードをいくつか省略しました。これだけが機能していません。
もう少しテストした後に編集します: $.ajax 呼び出しを停止します。初めて機能する理由はわかりませんが、言語リンクをクリックした後では機能しません。また、ページを更新すると、再び機能し始めます。