我有一张表格,它需要能够在英语和西班牙语之间来回切换。为此,我使用<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调用以查看它,每次用户在框中单击时,文本框中的值都与数据库中的代码匹配。
在我使用的每个浏览器(safari,chrome,firefox)中都可以使用。 在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调用。我不知道为什么它会在第一次工作,但不是在点击语言链接后。此外,页面刷新后它会再次开始工作。
答案 0 :(得分:0)
javascript中的错字?
if(result =='Valid' || result == 'V´lido)
^-- missing '