问题的短篇小说: 基本上我的问题是:如何设置javascript以使用UTF-8以便支持åäö,所以我的javascript可以将正确的值添加到下拉列表选项中?
LONGER EXPLANATION: 我使用javascript填写主页上下拉列表中的“选项”。 下拉列表采用调用php脚本的形式,该脚本查询mysql数据库。
问题是,我在我的mysql数据库中使用了特殊字符,例如åäö。 当我像这样查询mysql数据库时:
SELECT * FROM database WHERE city = $city
它找不到任何东西。
这是因为$ city包含由javascript设置的特殊字符。 但是如果在没有javascript的情况下设置$ city变量,例如在我的带有
的html文档中 option value=åäö
然后它会起作用。这意味着javascript是问题,它将特殊字符设置为其他东西,这使查询无法找到任何内容。
填充我的下拉列表的javascript:
if(document.nav_form_main.nav_city_list.value == '4'){
removeAllOptions(document.nav_form_main.nav_city_list);
addOption(document.nav_form_main.nav_city_list, "Göteborg", "Göteborg", "");
addOption(document.nav_form_main.nav_city_list, "goteborg_closeby", "Angränsande områden", "");
addOption(document.nav_form_main.nav_city_list, "1", "Hela Sverige", "");
addOption(document.nav_form_main.nav_city_list, "other_area", "-- Välj område på nytt --", "");
}
function removeAllOptions(selectbox)
{
var i;
for(i=selectbox.options.length-1;i>=0;i--)
{
//selectbox.options.remove(i);
selectbox.remove(i);
}
}
function addOption(selectbox, value, text )
{
var optn = document.createElement("OPTION");
optn.text = text;
optn.value = value;
selectbox.options.add(optn);
}
我的HTML主文档用途:ISO 8859-1
当回收“ÅÄÖ”时,它适用于我的PHP代码。 但是当从J SY SY SY SY SY SY SY SY SY SY SY SY <<<<<<<<<<<<<<<<<<<<<<<<<<
答案 0 :(得分:1)
以下是我解决这个问题的方法:
document.getElementById("somewhere").innerHTML="mytext";
myoption = document.createElement("option");
myoption.value="myvalue";
myoption.text=document.getElementById("somewhere").innerHTML;
myselect.add(myoption,null);
“somewhere”是页面中未使用的,隐藏的或特殊创建的元素。
当javascript从innerHTML读取时,您将获得正确的字符。
答案 1 :(得分:0)
在发送到/从服务器接收之后尝试这些......
function encode_utf8( s ) { return unescape( encodeURIComponent( s ) ); } function decode_utf8( s ) { return decodeURIComponent( escape( s ) ); }
答案 2 :(得分:0)
为避免出现任何问题,您应确保在客户端和服务器端正确处理内容。
使用PHP:utf8_encode()
和utf8_decode()
使用Javascript使用webtoolkit.utf8.js:Utf8.encode()
和Utf8.decode()
答案 3 :(得分:-1)
据我所知,问题出在服务器端,而不是客户端。换句话说,问题出在你的php中,而不是你的javascript。 尝试制作一个简单的PHP脚本来输出您的JavaScript请求。