+ Yanıtla
Toplam 4 sonuçtan 1 ile 4 arası olanlar

Konu Başlığı: Popup alert mesajlarında türkçe karakter sorunu

  1. #1

    Popup alert mesajlarında türkçe karakter sorunu

    Bir PHP formun içinde doldurulmayan bölümler için bir error mesajı veriyor.Fakat türkçe karakter sorunu yaşıyorum.Resimde net gözüküyor

    Kod:
    <script type="text/JavaScript"><!--//--><![CDATA[//><!--
    		function submitbutton(mfrm) {
    			var me = mfrm.elements;
    			var r = new RegExp("[\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-]", "i");
    			var r_num = new RegExp("[^0-9\.,]", "i");
    			var r_email = new RegExp("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,3}$" ,"i");
    
    			var errorMSG = '';
    			var iserror=0;
    			
    			<?PHP 
    			if (function_exists("loadEditFormCheck")){
    				loadEditFormCheck($row);
    			}
    			?>
    			
    			if (mfrm.username && (r.exec(mfrm.username.value) || mfrm.username.value.length < 3)) {
    				errorMSG += mfrm.username.getAttribute('mosLabel').replace('&nbsp;',' ') + ' : <?PHP echo addslashes(html_entity_decode(sprintf( ADSMANAGER_VALID_AZ09, ADSMANAGER_PROMPT_UNAME, 4 ),ENT_QUOTES)); ?>\n';
    				mfrm.username.style.background = "red";
    				iserror=1;
    			} 
    			if (mfrm.password && r.exec(mfrm.password.value)) {
    				errorMSG += mfrm.password.getAttribute('mosLabel').replace('&nbsp;',' ') + ' : <?PHP echo addslashes(html_entity_decode(sprintf( ADSMANAGER_VALID_AZ09, ADSMANAGER_REGISTER_PASS, 6 ),ENT_QUOTES)); ?>\n';
    				mfrm.password.style.background = "red";
    				iserror=1;
    			}
    			
    			if (mfrm.email && !r_email.exec(mfrm.email.value) && mfrm.email.getAttribute('mosReq')) {
    				errorMSG += mfrm.email.getAttribute('mosLabel').replace('&nbsp;',' ') + ' : <?PHP echo html_entity_decode(addslashes(ADSMANAGER_REGWARN_MAIL),ENT_QUOTES); ?>\n';
    				mfrm.email.style.background = "red";
    				iserror=1;
    			}
    						
    			// loop through all input elements in form
    			for (var i=0; i < me.length; i++) {
    			
    				if ((me[i].getAttribute('test') == 'number' ) && (r_num.exec(me[i].value))) {
    					errorMSG += me[i].getAttribute('mosLabel').replace('&nbsp;',' ') + ' : <?PHP echo html_entity_decode(addslashes(ADSMANAGER_REGWARN_NUMBER),ENT_QUOTES); ?>\n';
    					iserror=1;
    				}
    				
    				// check if element is mandatory; here mosReq="1"
    				if (me[i].getAttribute('mosReq') == 1) {
    					if (me[i].type == 'radio' || me[i].type == 'checkbox') {
    						var rOptions = me[me[i].getAttribute('name')];
    						var rChecked = 0;
    						if(rOptions.length > 1) {
    							for (var r=0; r < rOptions.length; r++) {
    								if (rOptions[r].checked) {
    									rChecked=1;
    								}
    							}
    						} else {
    							if (me[i].checked) {
    								rChecked=1;
    							}
    						}
    						if(rChecked==0) {
    							// add up all error messages
    							errorMSG += me[i].getAttribute('mosLabel').replace('&nbsp;',' ') + ' : <?PHP echo html_entity_decode(addslashes(ADSMANAGER_REGWARN_ERROR),ENT_QUOTES); ?>\n';
    							// notify user by changing background color, in this case to red
    							me[i].style.background = "red";
    							iserror=1;
    						} 
    					}
    					if (me[i].value == '') {
    						// add up all error messages
    						errorMSG += me[i].getAttribute('mosLabel').replace('&nbsp;',' ') + ' : <?PHP echo html_entity_decode(addslashes(ADSMANAGER_REGWARN_ERROR),ENT_QUOTES); ?>\n';
    						// notify user by changing background color, in this case to red
    						me[i].style.background = "red";
    						iserror=1;
    					} 
    				}
    			}
    			
    			if(iserror==1) {
    				alert(errorMSG);
    				return false;
    			} else {
    				return true;
    			}
    		}
    		//--><!]]></script>



    Kod:
    <meta http-equiv="Content-Type" content="text/HTML; charset=iso-8859-9">
    bu zaten var head tagının içinde sadece sorun scriptte çıkıyor.

    ı harfini dil dosyasına böyle yazmak zorundayım # 305; (#ile3 arasında boşluk yok) bu şekilde form dosyasında ı harfi gayet güzel gözüküyor.
    fakat alert script popupda # 305; şeklinde çıkıyor ı harfi şeklinde çıkmıyor.

    örnek bu scriptin neresine ne eklersem # 305; şeklindeki girdiyi ı harfine dönüştürür?

  2. #2

    Re: Popup alert mesajlarında türkçe karakter sorunu

    Durum normal çünkü yaptığınız şey HTML özel karakter kodlaması. JavaScript böyle bir kodlama biçimi kullanmadığı için normal olarak aynen olduğu gibi gösteriyor verdiğiniz bilgiyi. PHP tarafında bu bilgiyi JavaScript'in göstereceği hale getirmek için(yani aslında orijinaline döndürmek için) html_entity_decode işlevini kullanabilirsiniz.

  3. #3

    Re: Popup alert mesajlarında türkçe karakter sorunu

    bunu nasıl nereye ne yazmam gerekiyor.gösterebilirseniz çok memnun olurum

  4. #4

    Re: Popup alert mesajlarında türkçe karakter sorunu

    İlk mesajımda kodunuzu dikkatli incelememiştim, şimdi bakınca zaten html_decode_entities işlevinin kullanıldığını gördüm. Orada kullandığınız sabitleri echo ile direk ekrana yazdırıp sayfanın kodunda da düzgün görünüp görünmediklerini kontrol edebilirsiniz. Ek olarak, bu işlev son parametresi olarak encoding alıyor. Sayfanızda decode_html_entities işlevi geçen her yerde bu işleve son parametre olarak "iso-8859-9" vermeniz işe yarayabilir.

+ Yanıtla

Bu konu başlığı için etiketler

Mesaj Seçenekleri

  • Yeni başlık açamazsınız
  • Cevap yazabilirsiniz
  • Dosya ekleyemezsiniz
  • Mesajlarınızı değiştiremezsiniz