-
Inner HTML in PHP
Ciao a tutti...
io ho questo codice che modifica dinamicamente l'immagine contenuta nel div:
<?php
function incrementa($j) {
++$j;
return $j;
}
function decrementa($j) {
--$j;
return $j;
}
//Dichiarazione dell'elenco
$immagini=glob('imm/*');
echo"<div id='foto' class='polaroid'>";
$i=0;
echo "<img src='".$immagini[$i]."'>";
echo"</div>";
?>
<button OnClick="document.getElementById('foto').innerHTML ='<?php $i=incrementa($i); echo"<img src=".$immagini[$i].">";?>'">successiva</button>
<button OnClick="document.getElementById('foto').innerHTML ='<?php $i=decrementa($i); echo"<img src=".$immagini[$i].">";?>'">precedente</button>
il problema stà nel fatto che l'incremento della variabile i avviene solo la prima volta che si preme il bottone e poi più (nel senso che la variabile i è inizializzata a 0, premendo la prima volta il bottone i diventa 1, ma premendo una seconda volta il bottone il valore di i rimane 1 e non diventa 2)...
Come faccio a far sì che la variabile i venga incrementata più volte?
grazie a tutti per l'aiuto..
-
Non ho ben capito cosa tu voglia fare ma per modificare il documento non devi usare PHP (che agisce sul server, quindi una volta che la pagina è stata elaborata quella rimane) ma Javascript.
-
io vorrei che al secondo click sul bottone la variabile i assumesse il valore 2...invece rimane sempre 1...
-
non ho capito molto bene il tuo suggerimento...potresti adattare il mio codice nel senso in cui intendi tu? oppure fornire una soluzione in javascript?
grazie mille...
-
PHP è un liguaggio lato server (il codice viene elaborato per creare dinamicamente una pagina statica).
Una volta inviato il file elaborado al browser questo viene mostrato.
Qualunque modifica a questo va fatta con linguaggi lato client, quale è Javascript. Solo lato client puoi modificare il documento già aperto dal browser.
Quindi non si tratta di adattare il codice. Tu ha usato PHP per tentare di modificare una pagina già inviata al browser.
Fornirti una soluzione già pronta? ... mmm per principio sono contrario alla pappa pronta.
Prova tu, e se hai qualche difficoltà ne riparliamo.
La pappa pronta non aiuta te (che non impari nulla), ne altri (e quindi vanificherebbe il forum che esiste prorpio per far crescere la comunità).
-
C'è un errore di fondo nel tuo codice: stai tentando di condividere variabili tra PHP e JavaScript. La cosa non è possibile perché il primo lavora solo sul server, il secondo solo sul tuo PC.
Con PHP puoi al più inizializzare le variabili che poi, però, dovrai gestire esclusivamente tramite JavaScript. Per farlo non devi far altro che stampare, combinando HTML e PHP, il codice JavaScript che poi ti servirà. Questo potrebbe essere un esempio (ti richiede che i file immagine siano tutti in una cartella "imm" e che abbiano nome del tipo imgXXX.jpg, con XXX numerico):
Codice PHP:
<script type="text/javascript">
var idx = <?php echo $indice_iniziale; ?>;
function incrementa () { idx++; }
function decrementa () { idx--; }
</script>
...
<div class="polaroid">
<img id="foto" src="imm/img<?php echo $indice_iniziale; ?>.jpg" width="..." height="..." alt="..." />
</div>
<input type="button" value="Precedente" onclick="decrementa(); document.getElementById('foto').src='imm/img'+idx+'.jpg';" />
<input type="button" value="Successiva" onclick="incrementa(); document.getElementById('foto').src='imm/img'+idx+'.jpg';" />
Stammi bene...
-
Grazie mille per il suggerimento...ora ho capito di più come funzionano le cose...