Ciao e benvenuto, c'è un problema nell'uso degli apici annidati.
In questo caso, HTML è marginale. Si tratta infatti di un problema legato alla stesura del codice PHP.
echo
"<option value=
"$i
">$i</option>
";
Ovviamente qui salta fuori un errore di sintassi perché l'interprete PHP vede una prima stringa di testo definita così "<option value=" e dopo di questa, appiccicata, non può aspettarsi direttamente una variabile $i.
Ci sono diverse soluzioni per risolvere il problema.
- Se si tratta di codice HTML e non XHTML, e là dove il valore dell'attributo è formato da una singola parola, si potrebbero omettere gli apici:
Codice PHP:
echo "<option value=$i>$i</option>";
Da notare che questa pratica è, in genere, sconsigliata perché si può facilmente incorrere in errori sintattici che rendono difficili eventuali debug. Da preferire, invece, una sintassi più rigorosa.
- Usare apici doppi come delimitatori di stringa, e apici singoli all'interno della stringa:
Codice PHP:
echo "<option value='$i'>$i</option>";
- Usare apici singoli come delimitatori di stringa, e apici doppi all'interno della stringa:
Codice PHP:
echo '<option value="'.$i.'">'.$i.'</option>';
In questo caso PHP non permette di includere direttamente le variabili, quindi bisogna concatenarle opportunamente.
- Eseguire l'escape degli apici interni alla stringa:
Codice PHP:
echo "<option value=\"$i\">$i</option>";
..e forse anche altre soluzioni..
A te la scelta.
Buon proseguimento