您现在的位置是:首页 > 电脑技术查询 > web开发

AJAX加PHP传值中文不识别有关问题

编辑:chaxungu时间:2022-10-10 23:23:48分类:web开发

AJAX加PHP传值中文不识别问题
本帖最后由 u012067993 于 2015-04-29 10:09:39 编辑 刚接触AJAX,写了一个简单的程序,功能上就是选择下拉框,自动显示出一定的文字,英文传值没有问题,改成汉语就报错不识别了百度了很多也没看明白代码如下希望好心人帮帮新手
代码如下
index.HTML
<html>
<head>
<scripttype="text/javascript">
functionshowHint(str)
{
varxmlhttp;
if(str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if(window.XMLHttpRequest)
{//codeforIE7+,Firefox,Chrome,Opera,Safari
xmlhttp=newXMLHttpRequest();
}
else
{//codeforIE6,IE5
xmlhttp=newActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","gethint.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>

<h3>请在下面的输入框中键入字母(A-Z):</h3>
<formaction="">
<selectname="d2"id="d2"onChange="showHint(this.value)">
<optionvalue="">选择</option>
<optionvalue="一">一</option>
<optionvalue="b">b</option>
<optionvalue="c">c</option>
<optionvalue="d">d</option>
</select>

</form>
<p>建议:<spanid="txtHint"></span></p>

</body>
</html>
gethint.php
<?php
//获得来自URL的q参数
$q=$_GET["q"];
switch($q)
{
case"一":
$hint="一二三四";
break;
case"b":
$hint="B";
break;
case"c":
$hint="C";
break;
case"d":
$hint="D";
break;
}
//如果未找到提示,则把输出设置为"nosuggestion"
//否则设置为正确的值
if($hint=="")
{
$response="nosuggestion";
}
else
{
$response=$hint;
}

//输出响应
echo$response;
?>



------解决思路----------------------
encodeURIComponent编码下内容

xmlhttp.open("GET","gethint.php?q="+encodeURIComponent(str),true);