Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

volani xhr z javascriptu a async (jquery)

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: volani xhr z javascriptu a async (jquery)

Autor: minovec

8:32:16 25.11.2011

no to priznavam, to muze byt problem, ale vono mi to vypise undefinied i kdyz tam dam rovnou todlecto:

if (nastavenia.filter){
yearArray = nastavenia.filterData[xhr(null,null,"year")];
alert(xhr(null,null,"year"));
monthArray = nastavenia.filterData["month"];
}


pripada mi to jak kdyby se nestihla vykonat ta xhr funkce... ale predci tam mam nastaveno async na false... fakt nevim co s tym

Citovat příspěvek

 

Re: volani xhr z javascriptu a async (jquery)

Autor: peta1

7:42:28 25.11.2011

aha, takze vse ostatni je v poradku, chyba je v teto funkci:
return this.each(function() {
var obj = $(this);
if (nastaveni.filter){
yearArray = nastaveni.filterData["year"];
monthArray = nastaveni.filterData["month"];
}
...
...

})(jquery);

alert(this)
alert(this.html())
alert(nastaveni.filter)
alert(nastaveni.filterData)
alert(nastaveni.filterData["year"])

$("#datumbar").showDate({
filter:true,
filterData:"loadData.php"
});
... nastavenia.filterData = "loadData.php", cili string. Ty tam ale mas alert pro array nastaveni.filterData["year"]. neni to nahodou ten problem?

Citovat příspěvek

 

Re: volani xhr z javascriptu a async (jquery)

Autor: minovec

15:29:30 24.11.2011

takze todlecto je vystup na ty alerty:



1,

2011


Semptember


2,year

3,function parseHTML(html, idStr) {
var root = document.createElement("div");
root.innerHTML = html;
var allChilds = root.childNodes;
for (var i = 0; i < allChilds.length; i++) {
if (allChilds[i].id && allChilds[i].id == idStr) {
return allChilds[i];
}
}
return false;
}


4,[object HTMLDivElement]

5,[object Object]

6,2011


ale kdyz dam alert(yearArray) tak vystup je undefined
if (nastaveni.filter){
yearArray = nastavenia.filterData[xhr(null,null,"year")];
alert(yearArray);
monthArray = nastaveni.filterData["month"];
}

2011
Semptember
2,year 3,function parseHTML(html, idStr) { var root = document.createElement("div"); root.innerHTML = html; var allChilds = root.childNodes; for (var i = 0; i < allChilds.length; i++) { if (allChilds[i].id && allChilds[i].id == idStr) { return allChilds[i]; } } return false; } 4,[object HTMLDivElement] 5,[object Object] 6,2011 ale kdyz dam alert(yearArray) tak vystup je undefined if (nastaveni.filter){ yearArray = nastavenia.filterData[xhr(null,null,"year")]; alert(yearArray); monthArray = nastaveni.filterData["month"]; }

Citovat příspěvek

 

Re: volani xhr z javascriptu a async (jquery)

Autor: peta1

13:17:23 24.11.2011

Tvrdis, ze kdyz nahradis
success: function(data) {
var gotcha = parseHTML(data, ids);
if (gotcha) {
return $(gotcha).html();
}else{
alert('ID not found.');
}
},
za
success: function(data) {
var gotcha = parseHTML(data, ids);
if (gotcha) {
alert($(gotcha).html());
}else{
alert('ID not found.');
}
},
tak se alert zobrazi? Pak to ale znamena, ze vse funguje, jak ma. Pokud ten alert davas nekam jinam, tak napis cely kod s tim alertem.
Neni mi jasne, jak tam dostanes undefined, protoze to parse vraci bud existujici objekt nebo false. Takze by i alert musel vratit totez. Podivej se do JS konzily, na co se vraci to undefined. Pripadne si odalertuj kazdou promennou:
success: function(data) {
alert([1,data])
alert([2,ids])
alert([3,parseHTML])
var gotcha = parseHTML(data, ids);
alert([4,gotcha])
alert([5,$(gotcha)])
alert([6,$(gotcha).html()])
if (gotcha) {
alert($(gotcha).html());
}else{
alert('ID not found.');
}
},


createElement("div"); // tady bych dal kvuli divnym prohlizecum velkymi pismeny DIV

Citovat příspěvek

 

volani xhr z javascriptu a async (jquery)

Autor: minovec

9:29:38 24.11.2011

Zdravim, mam jeden problem. Pisu se jeden plugin pro jquery a potrebuju si z pluginu dynamicky nacist nejake data do pole ktere mam v pluginu zobrazit. Tady je nastin pluginu:



[code]
$("#datumbar").showDate({
filter:true,
filterData:"loadData.php"
});


$.fn.showDate = function(nastavenia){
...
...

function xhr(year,month,ids){
var request = $.ajax({
url: nastaveni.filterUrl,
type : "GET",
data: {y : year,m : month},
dataType : "html",
async: false,
success: function(data) {
var gotcha = parseHTML(data, ids);
if (gotcha) {
return $(gotcha).html();
}else{
alert('ID not found.');
}
},
error : function() {
alert("Sorry, The requested property could not be found.");
}
});
}

function parseHTML(html, idStr) {
var root = document.createElement("div");
root.innerHTML = html;
var allChilds = root.childNodes;
for (var i = 0; i < allChilds.length; i++) {
if (allChilds[i].id && allChilds[i].id == idStr) {
return allChilds[i];
}
}
return false;
}

return this.each(function() {
var obj = $(this);

if (nastaveni.filter){
yearArray = nastaveni.filterData["year"];
monthArray = nastaveni.filterData["month"];
}
...
...

})(jquery);
}


v souboru loadData.php se generuje todlecto:

2010,2011

"Leden","Unor","Brezem"


[/code]

bohuzel do pole se mi vrati undefinied, ale kdyz dam ve funkci xhr alert na navratovou funkci misto return



[code]alert($(gotcha).html()); [/code]

tak mi to hezky ukaze co potrebuju...


nevite co s tym? mozna je uplne spatna myslenka toho jak to delam, v tom pripade bych potreboval nejakej nastin toho jak to mam udelat. je nutne aby jsem si todlecto pole nacitaval dynamicky z pluginu.

dekuju

2010,2011
"Leden","Unor","Brezem"
[/code] bohuzel do pole se mi vrati undefinied, ale kdyz dam ve funkci xhr alert na navratovou funkci misto return [code]alert($(gotcha).html()); [/code] tak mi to hezky ukaze co potrebuju... nevite co s tym? mozna je uplne spatna myslenka toho jak to delam, v tom pripade bych potreboval nejakej nastin toho jak to mam udelat. je nutne aby jsem si todlecto pole nacitaval dynamicky z pluginu. dekuju

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: