آژانس هواپیماییexchanging

درخواست راهنمایی فوری

شروع موضوع توسط mrcoder ‏20 آگوست 2010 در انجمن JavaScript , VBScript

  1. mrcoder

    mrcoder کاربر تازه وارد

    تاریخ عضویت:
    ‏20 آگوست 2010
    نوشته ها:
    2
    تشکر شده:
    0
    سلام به تمام دوستان عزیز
    من برای ارسال فرم از یک فایل جاوا استفاده میکنم، هنگام ثبت داده انگلیسی در دیتابیس مشکلی نداره، اما وقتی داده فارسی میشه تبدیل میشه به کاراکترهای دیگر، مشکل از یونیکد صفحه و... نیست، لطفا بررسی کنید:

    فرم مربوطه:
    کد:
    <form name="banktransfer" action="insert.php?route=modules/banktransfer" method="post" onsubmit="xmlhttpPost('insert.php?route=modules/banktransfer', 'banktransfer', 'Result', '<img src=\'../theme/images/image/loading.gif\' align=\'absmiddle\' style=\'margin:0px 0px 0px 5px;\' /><label>درحال انجام عملیات...</label>'); return false;">
    <table>
      <tr>
        <td><label>نام</label></td>
        <td>:</td>
        <td><input id="name" name="name" type="text" /> <img src="../../theme/images/icon,required.gif" width="13" height="13" align="texttop" /></td>
        <td> </td>
      </tr>
      <tr>
        <td>عملیات</td>
        <td>:</td>
        <td><input type="submit" name="submit" value="ارسال"/></td>
        <td> </td>
      </tr>
    </table>
    </form>
    
    <div id="Result" class="Result"></div>
    
    کد جاوا:
    کد:
    function xmlhttpPost(strURL,formname,responsediv,responsemsg) {
    
        var xmlHttpReq = false;
    
        var self = this;
    
        // Xhr per Mozilla/Safari/Ie7
    
        if (window.XMLHttpRequest) {
    
            self.xmlHttpReq = new XMLHttpRequest();
    
        }
    
        // per tutte le altre versioni di IE
    
        else if (window.ActiveXObject) {
    
            self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    
        }
    
        self.xmlHttpReq.open('POST', strURL, true);
    
        self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    
        self.xmlHttpReq.onreadystatechange = function() {
    
            if (self.xmlHttpReq.readyState == 4) {
    
    			// Quando pronta, visualizzo la risposta del form
    
                updatepage(self.xmlHttpReq.responseText,responsediv);
    
            }
    
    		else{
    
    			// In attesa della risposta del form visualizzo il msg di attesa
    
    			updatepage(responsemsg,responsediv);
    
    		}
    
        }
    
        self.xmlHttpReq.send(getquerystring(formname));
    
    }
    
    function getquerystring(formname) {
    
        var form = document.forms[formname];
    
    	var qstr = "";
    
    
    
        function GetElemValue(name, value) {
    
            qstr += (qstr.length > 0 ? "&" : "")
    
                + escape(name).replace(/\+/g, "%2B") + "="
    
                + escape(value ? value : "").replace(/\+/g, "%2B");
    
    			//+ escape(value ? value : "").replace(/\n/g, "%0D");
    
        }
    
    	
    	var elemArray = form.elements;
    
        for (var i = 0; i < elemArray.length; i++) {
    
            var element = elemArray[i];
    
            var elemType = element.type.toUpperCase();
    
            var elemName = element.name;
    
            if (elemName) {
    
                if (elemType == "TEXT"
    
                        || elemType == "TEXTAREA"
    
                        || elemType == "PASSWORD"
    
    					|| elemType == "BUTTON"
    
    					|| elemType == "RESET"
    
    					|| elemType == "SUBMIT"
    
    					|| elemType == "FILE"
    
    					|| elemType == "IMAGE"
    
                        || elemType == "HIDDEN")
    
                    GetElemValue(elemName, element.value);
    
                else if (elemType == "CHECKBOX" && element.checked)
    
                    GetElemValue(elemName, 
    
                        element.value ? element.value : "On");
    
                else if (elemType == "RADIO" && element.checked)
    
                    GetElemValue(elemName, element.value);
    
                else if (elemType.indexOf("SELECT") != -1)
    
                    for (var j = 0; j < element.options.length; j++) {
    
                        var option = element.options[j];
    
                        if (option.selected)
    
                            GetElemValue(elemName,
    
                                option.value ? option.value : option.text);
    
                    }
    
            }
    
        }
    
        return qstr;
    
    }
    
    function updatepage(str,responsediv){
    
        document.getElementById(responsediv).innerHTML = str;
    
    }
    
     
  2. amirrezanoori

    amirrezanoori Registered User

    تاریخ عضویت:
    ‏30 سپتامبر 2010
    نوشته ها:
    18
    تشکر شده:
    0
    محل سکونت:
    شاهرود
    من کل کدت رو نخوندم و کدی رو که گذاشتی تست نکردم اما یه چیزی که به وضوح کدت کم داره encode کردن داده هاست که برنامه نویس کد با اون مشکل داشته

    برای encode کردن تمام کاراکترها و تبدیل اون ها با کاراکتر های مجاز برای url از تابع encodeURIComponent استفاده میشه.

    یعنی فقط تابع زیر تغییر میکنه

    کد:
    function GetElemValue(name, value) {
    
            qstr += (qstr.length > 0 ? "&" : "")
    
                + encodeURIComponent(name)+ "="
    
                + encodeURIComponent(value ? value : "");
    }
    
    

    موفق باشی :rolleyes: