לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 11-08-2006, 13:44
  BG BG אינו מחובר  
 
חבר מתאריך: 29.03.03
הודעות: 574
שלח הודעה דרך ICQ אל BG
העברת עברית ב-XMLHttp ללא שינוי קידוד

שלום לכם.
באתר שמקודד בקידוד ISO-8859-8-I, יש צורך להוסיף סקריפט שיפעל בשיטת AJAX.
מכיוון שאיני מעוניין בשינוי הקידוד כרגע, ניסיתי לבנות דוגמא קטנה כדי לבדוק איך אפשר להסתדר עם העניין. הדוגמא רק שולחת טקסט שנכתב בתיבת טקסט לשרת ב-POST, השרת מדפיס את הטקסט שהוא קיבל, והוא חוזר לדף ומוקפץ ב-alert.
משום מה, לא הצלחתי עדיין לסדר עברית למרות שניסיתי מספר דברים כמו encodeURI וכו'.
הבעיה כנראה בשליחת הנתונים, כי כאשר בשרת אני כותב למשל
echo "שלום";
העברית בלקוח נראית ללא בעיות.

קוד הלקוח:
קוד:
<?php header("Content-type: text/plain; charset=ISO-8859-8-I"); ?> <html dir="rtl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-8-I" /> <script> var xmlHttp function sendform() { xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } str="str="+encodeURIComponent(document.test.str.value); var url="testsrv.php" url=url+"?sid="+Math.random() xmlHttp.onreadystatechange=stateChanged xmlHttp.open("POST",url,true) xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-8-I"); xmlHttp.send(str); } function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { alert(xmlHttp.responseText); } } function GetXmlHttpObject() { var objXMLHttp=null if (window.XMLHttpRequest) { objXMLHttp=new XMLHttpRequest() } else if (window.ActiveXObject) { objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP") } return objXMLHttp } </script> </head><body> <form name="test"><input type="text" name="str" /> <input type="button" name="submit" value="Send" onclick="sendform();"> </form> </body></html>


קוד השרת:
קוד:
<?php header("Content-type: text/plain; charset=ISO-8859-8-I"); echo urldecode($_POST["str"]); ?>


תודה.
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 13-08-2006, 20:41
  idanbh idanbh אינו מחובר  
 
חבר מתאריך: 13.08.06
הודעות: 20
תבין
בתגובה להודעה מספר 1 שנכתבה על ידי BG שמתחילה ב "העברת עברית ב-XMLHttp ללא שינוי קידוד"

שים לב תמחוק את השורה הצהובה ותשנה את השורה האדומה מtext/html לtext/plain
קוד:
<?php header("Content-type: text/plain; charset=ISO-8859-8-I"); ?> <html dir="rtl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-8-I" /> <script> var xmlHttp function sendform() { xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } str="str="+encodeURIComponent(document.test.str.value); var url="testsrv.php" url=url+"?sid="+Math.random() xmlHttp.onreadystatechange=stateChanged xmlHttp.open("POST",url,true) xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-8-I"); xmlHttp.send(str); } function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { alert(xmlHttp.responseText); } } function GetXmlHttpObject() { var objXMLHttp=null if (window.XMLHttpRequest) { objXMLHttp=new XMLHttpRequest() } else if (window.ActiveXObject) { objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP") } return objXMLHttp } </script> </head><body> <form name="test"><input type="text" name="str" /> <input type="button" name="submit" value="Send" onclick="sendform();"> </form> </body></html>

אז הקוד התקני הוא:
קוד PHP:
 <html dir="rtl">
<
head>
<
meta http-equiv="Content-Type" content="text/plain; charset=ISO-8859-8-I" />
<
script>
var 
xmlHttp
function sendform()
{
xmlHttp=GetXmlHttpObject()
if (
xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return
}
str="str="+encodeURIComponent(document.test.str.value);
var 
url="testsrv.php"
url=url+"?sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp
.open("POST",url,true)
xmlHttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded; charset=ISO-8859-8-I");
 
xmlHttp.send(str);
 
}
 
function 
stateChanged()
{
if (
xmlHttp.readyState==|| xmlHttp.readyState=="complete")
{
alert(xmlHttp.responseText);
}
}
 
function 
GetXmlHttpObject()
{
var 
objXMLHttp=null
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest()
}
else if (
window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return 
objXMLHttp
}
</script>
</head><body>
<form name="test"><input type="text" name="str" />
<input type="button" name="submit" value="Send" onclick="sendform();">
</form>
</body></html> 
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 08:12

הדף נוצר ב 0.04 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2025 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר