Passare loop in php su uno script javascript

  • Creatore Discussione Creatore Discussione Garaux
  • Data di inizio Data di inizio

Garaux

Utente Attivo
24 Feb 2013
50
0
0
Ciao,
ho un problema che non riesco a risolvere.
Da una tabella estraggo determinati valori tra cui la data di invio di una mail. Poi stami i valori su una tabella in questo modo:

HTML:
<table>
<tr>
<th>Data</th>

</tr>
PHP:
<?php
$getRows = mysql_query("SELECT * FROM users");
while($row = mysql_fetch_array($getRows)){
$email_date = strtotime($row['email_date']);
$data= date('j F,  Y', $email_date);//restituisce la data in questo formato: 25 June, 2014
?>

HTML:
<tr>
<td>

<tr>
 <td>
<div class="countdown">
<div class="col"><span class="ce-days"></span> <span class="ce-days-label"></span></div>
<div class="col"><span class="ce-hours"></span> <span class="ce-hours-label"></span></div>
<div class="col"><span class="ce-minutes"></span> <span class="ce-minutes-label"></span></div>
<div class="col"><span class="ce-seconds"></span> <span class="ce-seconds-label"></span></div></div>



<script>
$(document).ready(function() {
var currentDate = new Date("<?php echo $data?>11:13:00")

$(".countdown").countEverest({
day: currentDate.getDate()+ 21,
month: currentDate.getMonth() + 1, 
year: currentDate.getFullYear(),
hour: currentDate.getHours(),
minute: currentDate.getMinutes(),
second: currentDate.getSeconds() + 8,
onComplete: function() {
$("#message").text("Complete").addClass("complete");

//you can use a redirect too
//window.location.replace("http://anacoda.de");
}
});
});
</script>

</td>
</tr>
PHP:
<?

 }
 ?>
HTML:
</table>

Tutto funziona bene, solo che al valore $data non riesco a far passare tutte le date ma sempre e solo una.

HTML:
var currentDate = new Date("<?php echo $data?>11:13:00")

Il loop crea sempre lo stesso countdown con la data del primo user. Come faccio a far passare tutte le date e creare cosi countdown in base alle diverse date inserite dagli utenti?

Grazie
 
Ciao,
Codice:
var currentDate = new Date("<?php echo $data; ?>11:13:00")
devi lasciare uno spazio tra l'anno e l'ora
Codice:
var currentDate = new Date("<?php echo $data; ?> 11:13:00");
 
L'errore che ti ho indicato è di javascript
metti un alert subito dopo
Codice:
var currentDate = new Date("<?php echo $data; ?> 11:13:00");
    alert(currentDate.getDate());
per ogni ciclo dovrebbe stamparti il numero del giorno della data passata
 
ciao
poi in funzione di quello che di da l'alert controlla anche il php mettendo un var_dump
PHP:
<?php
$getRows = mysql_query("SELECT * FROM users");
while($row = mysql_fetch_array($getRows)){
$email_date = strtotime($row['email_date']);
$data= date('j F,  Y', $email_date);//restituisce la data in questo formato: 25 June, 2014
echo "<pre>"; var_dump($data); echo "</pre>";// poi la togli
?>
 
Ciao,
l'alert js restituisce i giorni, ovvero 24 e 10.
La funzione var_dump riporta quanto segue:

string(14) "24 June, 2014"

string(14) "10 June, 2014"
 
Ciao,
purtroppo no.
Nella colonna email_date ho solo due date per testare lo script, ovvero quelle citate in alto.
Purtroppo visualizza sempre e solo un coundtown, o meglio, ripete sempre lo stesso andando a leggere la prima data: il 10 giugno, mentre la seconda, 24 giugno la ignora.
 
Ok ho capito, non puoi assegnare la stessa classe a tutti i countdown.
potresti assegnarli come id l'id uitente per esempio
PHP:
<div id="<?php echo $row['idUtente']; ?>" class="countdown">
e poi modifichi la chiamata jquery
PHP:
$("#<?php echo $row['idUtente']; ?>").countEverest({
 

Discussioni simili