Back to top

Autore Topic: [Risolto] Javascript in ciclo foreach php rende solo ultimo record  (Letto 1424 volte)

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Buongiorno
Sempre nell'ambito del mio progetto ho il problema che uno script javascript inserito in un ciclo foreach php rende i valori di confronto solo per l'ultimo record.di seguito il codice:
Codice: [Seleziona]
<tbody>
<?php foreach ($this->items as $item): ?>
<tr>
<?php 
// ricavo valore ora
$hh date('H'strtotime($item->date));
// ricavo valore minuti
$mm date('i'strtotime($item->date));
// trasformo tutto in minuti
$ini = ($hh*60 $mm);
// stampo i minuti per verifica
echo $ini;
 
?>

<td>
<script type="text/javascript"> 
function aggiorna() {
    var ini = <?php echo $ini ?>;    // inizializzo la variabile php in javascript
    var hour = new Date().getHours() ;    // ricavo ora corrente
    var min = new Date().getMinutes();    // ricavo minuti correnti
    var start = (hour*60 ) + (min + 2);    // trasformo in minuti
    if (start >= ini) {   //definisco quando far partire il cambio
        document.getElementById("cambio").innerHTML = "Coming Soon!";   
    }
}
    setInterval("aggiorna()", 1000);
</script>
<div id ="cambio">
    <div id="countdown_dashboard">
        <div uk-countdown="date: <?php echo  date("Y-m-d") . "T"date('H:i:s'strtotime($item->date));?>">
            <span class=" uk-countdown-hours"></span>
            <span>:</span>
            <span class=" uk-countdown-minutes"></span>
            <span>:</span>
            <span class="uk-countdown-seconds"></span>
        </div>
    </div>
</div>
</td>
</tr>
<?php endforeach; ?>
</tbody>
Il codice di per se funziona solo che mi rende i valori del solo l'ultimo record saltando quelli precedenti e visualizza il risultato nel primo record.
« Ultima modifica: 25 Ott 2020, 18:38:48 da tomtomeight »

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:[Risolto] Javascript in ciclo foreach php rende solo ultimo record
« Risposta #1 il: 25 Ott 2020, 18:48:22 »
Risolto pure questo
Ho capito dove sbagliavo, in verità mi hanno aiutato in un altro forum specifico, il problema è dato dal fatto che l'id a cui punta l'azione della funzione e cioè "id = cambio" resta uguale per tutto il ciclo foreach e come risultato finale ottengo solo quello che legge per l'ultimo. La soluzione è quella di associare una variabile all'id in modo che risulti diverso per ogni ciclo, a dire che gia avevo affrontato e risolto così lo stesso problema e forse anche in questo forum per un precedente post. A volte la soluzione è gia stata trovata  ed applicata da noi stessi ma è facile poi dimenticarsene.Per ora segno come risolto riservandomi di pubblicare il codice corretto appena  avrò tempo di farlo.


 



Web Design Bolzano Kreatif