04-11-2007, 11:16
|
|
|
חבר מתאריך: 21.05.03
הודעות: 576
|
|
בעיה חוזרת עם ajax, עברית ואקסס
יש לי קובץ html עם ajax.
אני מנסה לשלוח מידע מטופס לקובץ asp בשרת שהוא מכניס את הנתון למסד נתונים (אקסס).
משום מה אני מקבל סימנים מוזרים בתוך המסד נתונים במקום עברית.
הנה הקוד בקובץ ה- html:
קוד:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<script type="text/javascript">
function sendComment()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
var url="ajaxtest.asp";
var name = "name=" + encodeURI(document.getElementById('name1').value)
var params = name;
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xmlHttp.send(params);
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.getElementById("comments").innerHTML=xmlHttp.responseText;
}
}
}
</script>
<title> </title>
</head>
<body>
<form dir=rtl style="font-family:arial;color:black;font-size:10pt;">
שם: <input type="text" id="name1"/><br/><br/>
<input type="button" value="שלח" onclick="sendComment()" />
</form>
<div style="border-style:solid;border-color:white;border-width:1px;width:100%;height:350;" id="comments"> </div>
</body>
</html>
מה שמוזר זה שאם אני משתמש ב escape() ורושם עברית, זה לא מעביר לדף ה asp כלום.
אם אני משתמש ב encodeURI() זה מעביר משהו אבל מכניס סימנים במקום עברית למסד נתונים.
הנה הקוד בקובץ ה asp:
קוד:
<%@ language="VBSCRIPT" Codepage = 1255 %>
<%
Response.Charset="windows-1255"
Session.CodePage=1255
%>
<!--#include virtual = "/erezweb2/Adovbs.inc" -->
<%
name = request.form("name")
set all_dataDB = Server.CreateObject("ADODB.Connection")
all_dataDB.Open "DSN=database;"
set comment = Server.CreateObject("ADODB.RecordSet")
comment.Open "comments", all_dataDB, adOpenStatic, adCmdTable
comment.AddNew
comment("Name") = name
comment.Update
comment.Close
set comment = Nothing
all_dataDB.Close
set all_dataDB = Nothing
%>
<font color="black">
Name = <%=name%> <br/>
</font>
מה שמוזר פה זה שאם אני משתמש ב Response.Charset="windows-1255" אז ה Name שמוחזר לקובץ ה html מכיל סימנים במקום עברית.
אם אני מוריד אותו אז יראו עברית בדף ה html.
בכל מקרה במסד נתונים זה רק סימנים ולא עברית.
אני כבר הרבה זמן מנסה לגרום לזה לעבוד אך ללא הצלחה.
אודה לכם על כל עזרה.
ארז.
|