[php, js] json se chová jako string

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod ReZetFet 16. 9. 2015 09:36

Wikan píše:A to jsi zjistil až teď, nebo jsi to věděl už na začátku?


některý programy kopírují i čísla řádku (ze zdroj. kódu) to jsem ale použával ctrl c, ctrl v.

To nic nemění na načtených datech.. nedělám tam nic takže když si data posílá php a pak Jquery použije, tak tam nic takovýho být nemá.

karlos00x píše:ob_clean();
print json_encode($rows);
exit;


dík moc, tohle taky zkusím
ReZetFet
Junior

Odeslat příspěvekod ReZetFet 17. 9. 2015 21:10

Řešení:

1. PHP (dík karlos00x)
Kód: Vybrat vše
ob_clean();
header('Content-type: application/json');
print json_encode($rows);
exit;


2. JS

Kód: Vybrat vše
$.get("json-data.php", function(data, status){
   //alert("Data: " + data + "\nStatus: " + status);
   var d = data; 
   var objNum = Object.keys(data).length;
   for (i = 0; i < objNum; i++) {
      $('div').append('<p>'+data[i].x+'</p>');
   }
});


a to hlavní je, že data jsem si nacpal do databáze skrze phpMyAdmin jako např.: šnek
ale tyto jsou zakodovaný jinak a proto by měla být uložena jako Å¡nek, tohle byl důvod proč to nešlo použít jako JSON.

Alternativou by bylo v php použít:

Kód: Vybrat vše
function utf8ize($d) {
    if (is_array($d)) {
        foreach ($d as $k => $v) {
            $d[$k] = utf8ize($v);
        }
    } else if (is_string ($d)) {
        return utf8_encode($d);
    }
    return $d;

print json_encode(utf8ize($rows));
ReZetFet
Junior

Odeslat příspěvekod karlos00x 17. 9. 2015 21:36

pokud nemas data v utf8 tak je to bud relikt minulosti hodny konverze nebo pokud resis nejake jine kodovani na novem projektu tak jsi trouba.

takze to nedelej slozite a jed vsude v UTF-8. V DB, v souborech(to je na widlich komplikovane protoze i netbeany si nastavi cp1250 :-( )

kdyz uz posilas hlavicku tak ji tam dej i s kodovanim
Kód: Vybrat vše
header('Content-type: application/json; charset=UTF-8')
Upgrade který má smysl: SSD. Zažijete svižný počítač.
karlos00x
Pokročilý

Předchozí stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků