Změna textu po ajaxovem pozadavku

- VaKvas
 - Začátečník | 111
 
Zdravim,
pouzivam toto
$('a.ajaxD').live('click', function(event){
	var $li = $(this).closest('li');
	$.get(this.href);
	$("#ajax-spinner").show().css({
	    position: "absolute",
	    left: event.pageX - 10,
	    top: event.pageY - 10
	}).ajaxStop(function() {
	    $(this).hide();
	    $li.slideUp();
	});
	return false;
    });
ovsem ja potrebuji aby misto zmizeni <li> po kliknuti se me zmenila hodnota textu v nejblizsim <td> a to ANO na NE a obracene..
Zkousel jsem toto resit pres snippet, ale to bohuzel nejde, musel bych mit ve snipetu celou sablonu a to pak postrada vyznam… Jedna se o velkou tabulku kde je tlacitko na zmenu stavu.
Predem diky.. a omlouvam se blby dotaz, ale javascript moc neumim a zadny vzor na toto jsem nenasel..
Diky !

- ic
 - Člen | 431
 
Jsou k tomu potřeba nějaká data dynamicky načítána ze serveru?
Protože jestli to chápu správně tak změna ‚ANO na NE a obracene‘ by se
dala udělat jen jednoduchým scriptem u klienta. Ale teda přijde mi ten
příspěvek takový nejasný, takže tomu možná dost dobře nerozumím.
Pokud bych ale viděl i relevantní část HTML tak bych to udělal hned.

- VaKvas
 - Začátečník | 111
 
Mam tam jQuery tlacitko :
<td>
<a href="{link paid!, 'id'=>$invoicesr->id, 'val'=>$invoicesr->paid}" class="ajaxP tt" title="Změnit"><div id="paid-{$invoicesr->id}" class="ui-state-default ui-corner-all ui-one-icon"><span class="ui-icon ui-icon-transferthick-e-w"></span>{$invoicesr->paid|bool}</div></a>
</td>
to
{$invoicesr->paid|bool}
Vrati ANO nebo NE
Handle na zmenu pres ajax me funguje, pokdu stranku refreshnu, tak se samozrejme zmeni ANO/NE.
Potrebuji tedy jen, aby se mu to po kliknuti zmenilo, aby vedel, ze se neco
stalo …
Asi to klidne muzu udelat i tim, ze zmenim ten
span class="ui-icon ui-icon-transferthick-e-w"
na jiny.. ale u toho spanu to neni tak jednoduche.
Nehlede na fakt, za kazda radka bezi v cyklu a tedy nejde zmenit jen class, protoze tam je nekolikrat a proto asi bude nutne pouzit nejake „closest()“ jako to mam v tom vzoru..
Moc diky !!

- ic
 - Člen | 431
 
co jednoduše takovouhle podmínku:
if(document.getElementById('paid-{$invoicesr->id}').childNodes[1].data == 'ANO') ...
umístit pod příkaz, nebo třeba po načtení celé stránky…
jestli je těch id-ček hodně šlo by je vkládat do pole a takovouhle
podmínku potom udělat v cyklu a měnit ty hodnoty v <td> nebo co to
má dělat.

- VaKvas
 - Začátečník | 111
 
Tak jsem to zkusl vyresit takto :
<a onclick="f{$invoicesr->id}()" href="{link paid!, 'id'=>$invoicesr->id, 'val'=>$invoicesr->paid}" class="ajaxP tt" title="Změnit"><div id="paid-{$invoicesr->id}" class="ui-state-default ui-corner-all ui-one-icon"><span class="ui-icon ui-icon-transferthick-e-w"></span>{$invoicesr->paid|bool}</div></a>
	    <script type="text/javascript">
		function f{$invoicesr->id}() {
		if(document.getElementById('paid-{$invoicesr->id}').childNodes[1].data == 'ANO')
		     document.getElementById('paid-{$invoicesr->id}').childNodes[1].data = 'NE';
		else document.getElementById('paid-{$invoicesr->id}').childNodes[1].data = 'ANO';
	    }
	    </script>
Myslis, ze to je ok ? Je to cele v cyklu a tak jsem asi takto musel.. nebo by byla jednodussi moznost? Takto se me funkce tam vytvori tolikrat, kolik je cyklu …
Editoval VaKvas (15. 7. 2011 13:02)