Ciao a tutti, manco da un pò dal forum di Html ma spero che riuscirà ad essere come sempre molto utile. Vi espongo il problema. Utilizzo il jquery countdown plugin (lo trovate qui) per il contatore di un asta al centesimo. Le date per la partenza dei contatori le prelevo con ajax da una pagina php che mi restituisce un array di tipo json. Vi posto il codice:
L'array con cui compilo di dati è di questo tipo:codice:var listcount = setInterval(function(){ $.ajax({ url: 'timer.php', cache: false, async: false, dataType: 'json', success: function(result){ var year = new Array(); var month = []; var day = []; var hours = []; var minutes = []; var seconds = []; var auctionDate = []; var count = result.length; for (i=0; i<count; i++) { year[i] = result[i].dateend.years; month[i] = result[i].dateend.months; day[i] = result[i].dateend.days; hours[i] = result[i].dateend.hours; minutes[i] = result[i].dateend.mins; seconds[i] = result[i].dateend.seconds; auctionDate[i] = new Date(year[i],month[i]-1,day[i],hours[i],minutes[i],seconds[i]); $('#enddate_' + result[i].id).countdown({until: auctionDate[i], compact: true, format: 'HMS', serverSync: serverTime}); } } }); },1000);
La pagina che visualizza i contatori contiene questo:codice:[{"id":"1","dateend":{"years":"2011","months":"3","days":"30","hours":"20","mins":"8","seconds":"44"}},{"id":"2","dateend":{"years":"2011","months":"4","days":"3","hours":"19","mins":"43","seconds":"53"}}]
Ora il problema è aggiornare il contatore ogni qual volta un utente fa click sul pulsante "punta". Riesco senza problemi ad aggiornare il database inviando dati via ajax ad una pagina php:codice:<div id="enddate_1"></div> <div id="enddate_2"></div> <button onclick="clicked(2,2)">punta</button>
Ma trovo difficoltà a far eseguire l'aggiornamento del countdown. Pensavo che distruggendo al click il countdown, visto il setInterval della creazione dei contatori riuscissi a risolvere il problema ma non è stato così. In pratica se cancello il countdown al click del pulsante, esso si riparte aggiornato ma lo vedo solo io che ho eseguito la funzione, io vorrei invece che (visto che si tratta di un asta 1 cent) il click del pulsante fosse visto da tutti gli utenti online. Comincio a pensare che il problema sia nel plugin!codice:jQuery.ajax({ type: "POST", url: "update.php", data: "id="+id+"&bidder="+bidder, async: false, success:function(dati){ } }); }
Sareste così gentili da darmi un occhio e una dritta su come procedere xkè ci sto sbattendo la testa da 2 giorni![]()
e comincio ad esaurire la pazienza.
Grazie a tutti in anticipo e se ho scritto qualche castroneria cazziatemi pure perchè javascript non è proprio il mio forte!!

Rispondi quotando
) e ho risolto creando i countdowns fuori dal setInterval. In pratica il setInterval lo adopero per rilevare costantemente le date poi queste le passo come array ad una funzione che cicla e crea i contdowns con le date aggiornate; solo un piccolo trucco prima di creare i countdown aggiornati utilizzo la funzione destroy del plugin per azzerarli.
(senza offesa ma se non si capisce la logica è impossibile applicarla) 