Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Ajax][DOJO] problem z progress bar przesłanym ajaxem
Forum PHP.pl > Forum > XML, AJAX
pgrzelka
Witam

mam mniej więcej taki kod
CODE
<script type="text/javascript">
dojo.require("dijit.ProgressBar");
</script>

<script type="text/javascript">
dojo.require("dijit.form.Slider");
dojo.require("dojo.parser");

function getText() {
dojo.xhrPost({
url: "/vote_add.html",
load: function(response, ioArgs){
dojo.byId("toBeReplaced").innerHTML = response;
return response;
},
error: function(response, ioArgs){
dojo.byId("toBeReplaced").innerHTML =
"An error occurred, with response: " + response;
return response;
},
form:"myForm"
});
}
</script>

<div id="toBeReplaced" style="height:100px;">

<form id="myForm">
<table style="width:100%">
<tr>
<td>

<div dojoType="dijit.form.HorizontalSlider" name="horizontal1"
onChange="dojo.byId('slider1input').value=dojo.number.format(arguments[0]/100,{places:0,pattern:'# %'});"
value="50"
maximum="100"
minimum="0"
pageIncrement="100"
discreteValues="11"
showButtons="false"
intermediateChanges="true"
style="width:400px; height: 20px;padding-top:3px;"
id="slider1">

<ol dojoType="dijit.form.HorizontalRuleLabels" container="bottomDecoration"
style="height:1em;font-size:75%;color:gray;">
<li>bee</li>
<li>takie sobie</li>
<li>zajefajne</li>
</ol>

</div>

</td>

<td>
<input readonly id="slider1input" size="4" value="50 %">
</td>

<td>
<div dojoType="dijit.form.Button" onclick="getText();">Oceń</div>
</td>

</tr></table>
</form>

</div>


po kliknięciu buttona, w miejsce diva 'toBeReplaced' wczytuje się taki kod:
CODE
OCENA:<br />
<div style="width:400px" annotate="true" maximum="100" id="setTestBar" progress="20" dojoType="dijit.ProgressBar"></div>


czyli progressbar, niestety z niewiadomych powodów całość zachowuje się tak jakby wczytany kod nie był parsowany przez javascript
czyli widać tylko tekst 'ocena'

gdzie popełniłem błąd?
bazyliszek83
Nie wiem dokładnie jak tworzy tego progres bara ale wydaje mi się że problem tkwi w tym że JS odpowiedzialny za tworzenie progres bara jest wrzucany AJAXem. Z reguły są z tym problemy.

Ja bym proponował tworzyć tego progress bara przy ladowaniu strony, ale go ukryć. Potem po wywołaniu ajaxem, zwrócić tylko niezbędne parametry do modyfikacji paska postępu i za pomocą funkcji JS je nadać dla tego diva, i potem go pokazać.
erix
Albo użyć czegoś w stylu JSONP.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.