| Autor | Zpráva | ||
|---|---|---|---|
| HGD Profil |
#1 · Zasláno: 21. 9. 2008, 19:02:28
newim jak to napsat, je to snad jediná chyba kterou mam ve scriptu :-D
Používam to jako AJAX a potřeboval bych aby se mi vypsal obsah a ne proměnná ' <a onClick="obrazekHTTP(\'files[i].firstChild.nodeValue\',\'folderSend[i].firstChild.nodeValue\')">'+files[i].firstChild.nodeValue+'</a><br>' Díky za rady, já už sem z toho na prášky |
||
| Chamurappi Profil |
#2 · Zasláno: 22. 9. 2008, 14:59:13
Reaguji na HGD:
Když umíš vepsat řetězec jako obsah elementu <a>, proč to neuděláš stejně i u atributu? Nezáleží na tom, jestli a jak používáš AJAX, máš tam začátečnickou logickou chybu. Jestli chceš, aby se v nějakém řetězci objevoval obsah proměnné místo jejího názvu, tak nesmíš dávat ten název do uvozovek, musíš spojit samotné řetězce. Takže: ' <a onClick="obrazekHTTP(\'' + files[i].firstChild.nodeValue + '\',\'' + folderSend[i].firstChild.nodeValue + '\')">'+files[i].firstChild.nodeValue+'</a><br>' Na podobné úkony je mnohem výhodnější užívat metody DOMu. Element vyrobíš pomocí document.createElement("a"), strčíš ho do dokumentu pomocí rodič.appendChild, nastavíš mu odkaz.onclick = function() { … } a nemusíš se starat o uvozovkový mišmaš. |
||
| HGD Profil |
#3 · Zasláno: 22. 9. 2008, 18:03:29
děkuju za ty uvozovky, ale ten zbytek sice vypadá krásně, ale pro mě je to španělská vesnice, vůbec nechňápu. Kdyby bylo vysvětlení...díky
|
||
| Chamurappi Profil |
#4 · Zasláno: 22. 9. 2008, 18:29:07
Reaguji na HGD:
„ale pro mě je to španělská vesnice, vůbec nechňápu“ Když si dám tu práci a vysoukám ze sebe teoreticky přesné a formálně výstižné vysvětlení, pochňápeš to z něj? Jestli chceš názorné vysvětlení popsaného postupu, ukaž, o co se snažíš, dej sem odkaz na to, co zatím máš, uvidíme, co s tím půjde udělat. |
||
| HGD Profil |
#5 · Zasláno: 22. 9. 2008, 19:36:51
je to jen část kódu, ale v první funkci se vypisují soubory z adresáře + ikona podle typu
function vyberFolder(httpRequest){
if(httpRequest.readyState==4){
// - odpověd přijata vpořádku
if(httpRequest.status==200){
// - vše v pořádku
var files=httpRequest.responseXML.getElementsByTagName('soubor');
var typ=httpRequest.responseXML.getElementsByTagName('typ');
var folderSend=httpRequest.responseXML.getElementsByTagName('slozka');
var ikona;
document.getElementById('vypis_souboru').innerHTML="";
for(var i=0; i<=files.length; i++){
switch(typ[i].firstChild.nodeValue){
case 'jpg' : ikona='<img alt="JPG" src="style/jpg.gif">'; break;
case 'jpeg' : ikona='<img alt="JPEG" src="style/jpg.gif">'; break;
case 'png' : ikona='<img alt="PNG" src="style/png.gif">'; break;
case 'gif' : ikona='<img alt="GIF" src="style/gif.gif">'; break;
}
document.getElementById('vypis_souboru').innerHTML+=ikona+ ' <a onClick="obrazekHTTP(\''+files[i].firstChild.nodeValue+'\',\''+folderS end[i].firstChild.nodeValue+'\')">'+files[i].firstChild.nodeValue+'</a ><br>';
}
}else{
// - stránka nenalezena, popř. jiná chyba
alert("Chyba pri nacitani stanky "+ httpRequest.status +":"+ httpRequest.statusText);
}
}else{
// - nepřipravená odpoved
}
};a odesílá se sem, přes tuhle funkci se pak načítají informace o souboru a miniatura a tak function obrazekHTTP(img,folder){
var httpRequest;
var url='info.php?obrazek='+img+'&slozka='+folder;
if (window.XMLHttpRequest) { // Mozilla, Safari, Opera, Konqueror, ...
httpRequest = new XMLHttpRequest();
if(httpRequest.overrideMimeType){
httpRequest.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // Internet Explorer
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
httpRequest.open('GET',url,true);
httpRequest.onreadystatechange = function (){vyberImg(httpRequest)};
httpRequest.send(null);
}; |
||
|
Časová prodleva: 3 dny
|
|||
| peta Profil |
|||
| Chamurappi Profil |
#7 · Zasláno: 25. 9. 2008, 11:42:33
Reaguji na HGD:
function vyberFolder(httpRequest){
if(httpRequest.readyState == 4){
// - odpověd přijata vpořádku
if(httpRequest.status == 200){
// - vše v pořádku
var files = httpRequest.responseXML.getElementsByTagName('soubor');
var typ = httpRequest.responseXML.getElementsByTagName('typ');
var folderSend = httpRequest.responseXML.getElementsByTagName('slozka');
var ikona;
var vypis = document.getElementById('vypis_souboru');
vypis.innerHTML = "";
for(var i = 0; i <= files.length; i++){
var pripona = typ[i].firstChild.nodeValue;
var img = document.createElement("img"); // výroba elementu <img>
img.alt = pripona.toUpperCase();
img.src = "style/" + {"jpg": "jpg", "jpeg": "jpg", "png": "png", "gif": "gif"}[pripona] + ".gif";
vypis.appendChild(img); // začlenění <img> do elementu s id="vypis_souboru"
var a = document.createElement("a"); // výroba elementu <a>
a.appendChild(document.createTextNode(files[i].firstChild.nodeValue)); // doplnění textu do <a>
(function(i) {
a.onclick = function() {
obrazekHTTP(files[i].firstChild.nodeValue, folderSend[i].firstChild.nodeValue);
};
})(i); // tohle bude asi těžší na pochopení, viz povídání o closure
vypis.appendChild(a); // začlenění <a> do elementu s výpisem
var br = document.createElement("br");
vypis.appendChild(br);
}
}else{
// - stránka nenalezena, popř. jiná chyba
alert("Chyba pri nacitani stanky " + httpRequest.status + ":" + httpRequest.statusText);
}
}else{
// - nepřipravená odpoved
}
}; |
||
| HGD Profil |
#8 · Zasláno: 25. 9. 2008, 15:49:50
bude asi problem v jazyce, protože anglicky neumim, nicméně moc děkuji, funguje bezchybně
|
||
|
Časová prodleva: 18 let
|
|||
0