Autor Zpráva
artist
Profil *
Dobrý večer,

tento AJAXový skript nefunguje v IE a co je horší, v ostatních prohlížečích jede bez české diakritiky.
můj AJAXový skript vypadá takto:

function ajax(stranka,kam)
{
    var httpRequest;
   if(typeof window.ActiveXObject != 'undefined')
    {
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else
    {  
        httpRequest = new XMLHttpRequest();
    }
    httpRequest.open("GET", stranka, true);
    httpRequest.onreadystatechange= function () 
    {
        processRequest(httpRequest, kam) 
    };
    httpRequest.send(null);
}

function processRequest(httpRequest,kam) 
{
    if (httpRequest.readyState == 4)
    {
        if(httpRequest.status == 200)
        {
            if (typeof kam == 'string') 
            {
                document.getElementById(kam).innerHTML = httpRequest.responseText;
            }
            if (typeof kam == 'function') 
            {
                kam(httpRequest.responseText);
            }
        }
        else
        {
            alert("Chyba pri nacitani stanky " + httpRequest.status +" : "+ httpRequest.statusText);
        }
    }
    else
    {
        if (typeof kam == 'string' && kam != '') 
        {
            document.getElementById(kam).innerHTML = 'Načítá se obsah..';
        }
    }
       
}
prosím, AJAXmágové, co mám kam připsat aby to jelo hezky česky a i v IE? děkuji
Str4wberry
Profil
Odpovídám artistovi:
Uvedený kód se mi zdá zkopírovaný odsud, takže bych viděl problém v jeho použití (v HTML stránce, kterous neuvedl). Nefunkční čeština může být způsobena odlišným kódováním souborů.
artist
Profil *
používám to jako filtr;

<a onclick="ajax('/includes/_novinky.php','mainDiv');">VŠE</a>

s tím, že mainDiv je v jiném souboru

<table width="100%" cellpadding="5" cellspacing="0">
<div id="mainDiv"></div></table>

v novinkách jsou normálně buňky apod. vše funguje jak má, jen prostě místo "Dnešek je velice důležitým okamžikem" se vypíše "Dne�ek je velice d�le�it�m okam�ikem" a skript prostě nefunguje v IE (hlásí "Na stránce se vyskytla chyba")
dehtak
Profil
jj to je pravda , jestli ten soubor kterej nahravaj pomoci ajaxe do toho divu ma jiny formatovani nez ta stranka tak to pak dela tohle vsechny soubory by mneli mit stejny formatovani bud utf-8 nebo windows....
artist
Profil *
to formátování je stejné.

ještě jedna věc - můj kamarád mi útžkouvitě sdělil že ten výstupní soubor, který se zpracovává, má mít nějakou zvláštní xml hlavičku. totiž abyste rozuměli, ten můj vypadá nějak takhle:

<?
$databaze="jmeno_databaze";
include "../_head.htm"; // hlavička s kódováním windows-1250
include "../../mysql.inc";
}

a dál skripty zpracovávající data z tabulek
?>

nemá tam být něco speciálního? a taky, když jsem chtěl normálně vypisovat (include připojení k mysql mám už dříve), tak mi to hlásilo chybu v připojení databáze. takže se v tom výstupním souboru musí includovat úplně vše? i hlavičky?
Chamurappi
Profil
Reaguji na artistu:
Nastav parametr charset v HTTP hlavičce Content-Type (asi PHP funkcí header). Bez něj XmlHttpRequest předpokládá UTF-8.
peta
Profil
artist
viz CH, kdybys to nepochjopil, priklady na cz.php.net/header .
Akorat ten predpoklad je dan nastavenim v apache-config, cili to neni zadny predpoklad :)

Tez je mozne pouzit google.com, lepe .cz a hledat ceske stranky o ajaxu, kde budou pouzivat cestinu. Pridal bych slova jako opera explorer firefox...
Chamurappi
Profil
Reaguji na petu:
Akorat ten predpoklad je dan nastavenim v apache-config, cili to neni zadny predpoklad :)
Jak se může výchozí vlastnost objektu vytvořeného a běžícího pouze na straně prohlížeče řídit nastavením serveru?
alteaffe
Profil *
artist vis co mne pomohlo , u ajaxe ze jsem vypis z db prevedl na jinej format

$proajax = utf8_encode($vypis['jmeno sloupce'])
parovka
Profil *
Dobrý den, mám stejný problém ve FF mi to jede normálně, ale IE to nezvládá po přídání překodování($proajax = utf8_encode...) mi to místo otazníků píše : pepí&egrave;ek(původně pepíček) nevíte co s tím?
artist
Profil *
tak už jsem to vyřešil, byl to opravdu problém s php header(). moc děkuji, problém vyřešen.
flary
Profil
Napiš prosím jak jsi to vyřešil. Mám stejný problém.
arti
Profil *
nebyl tam header v php. v každém výstupním souboru musí být

header("Content-type: text/html;charset=windows-1250");

nebo kódování ve kterém je stránka a výstup např. z databáze. to je všechno čarování :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: