Diskuze: Pixelová velikost uloženého obrázku obrázku
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, pokud to chceš pomocí js máš jen dvě možnosti
V obou případech musíš znát adresu obrázku, to ale asi nebude problém.
Když budeš chtít jednu z možností víc podrobně probrat, napiš.
Úplně jednoduše jí zjistíš po načtení obrázku. Vůbec ho do DOMu nemusíš připojovat.
function getImageSize(src,callback){
var img = new Image();
img.onload = function(){
callback(this.width,this.height);
};
img.src = src;
};
getImageSize('foto.jpg',function(width,height){
console.log('Šiřka: '+width);
console.log('Výška: '+height);
});
Mas pravdu, nacitat ho do DOMu by bylo zbytecne (malo jsem se nad tim zamyslel) . Za me palec navic za nove a doporucovane reseni.
Pro Maxy_obra ... to co radi Pup je o neco pohodlnejsi, ale aby te to nematlo, pokud udelas var obrazek = document.createElement("img"); dostanes to same jen mu source dosadis pomoci obrazek.setAttribute("src", odkaz); a pak s nim muzes pracovat stejne
nicmene bych ti doporucil to co radi Pup
Obojí vrací instanci
HTMLImageElement
. Sice je v tom nějaký rozdíl, ale už si nepamatuji jaký.
Díky moc, ještě by mě zajímalo jaká je nejjednodušší cesta dostat proměnné z JS do PHP.
Na tomhle miste bych pouzil AJAX http request. Je o tom tady uvod v sekci Javascript, tam najdes vsechno co budes potrebovat, v zasade to ale funguje tak, ze si vyberes metodu (bezne GET nebo POST) na pozadi (bez refreshovani stranky) zavolas server a predas mu parametry, umoznuje ti to parametry bezne pojmenovat, takze na strane serveru se nemusis ani bat, ze nebudes vedet jaka hodnota je jaka promenna. A pokud to planujes opravdu delat jen obcas, skutecne se ti nejvic vyplati ten AJAX.
Kdybys to chtel sypat furt, rekneme sto hodnot do sekundy a jeste neco obdrzet zpet, proste takovej stream, no tak pak uz by se ti hodily sockety. Ale to asi nebude tvuj pripad.
Prošel jsem si to a trochu tápu nad tím jak používat metodu post. Vytvořil jsem.
getImageSize('<?php echo $_POST["picture"]; ?>',function(width,height){
console.log('šířka: '+width);
console.log('Výška: '+height);
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
document.getElementById("test").innerHTML = xhttp.responseText;
}
};
xhttp.open("POST", "/data.php", true);
xhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhttp.send("width="+width);
});
// tady ukládám do databáze
// tady začíná body
Problém nebo jenom moje nepochopení je v tom, že to potřebuji pochopitelně provést ještě před vypisováním body. Ale data.php vkládám až do body takže to hlásí chybu. Já vlastně vůbec nepotřebuju vkládat nikam nic, potřebuji si pouze poslat pouze ten POST. A nevím jak na to.
Zobrazeno 10 zpráv z 10.