- Home
- Categorie
- Coding e Sistemistica
- PHP
- problema con gli array
-
problema con gli array
Ciao ho un problemino spero che mi aiuterete
vi scrivo di seguito il codice che vi spiego
ho delle lettere che sono dei link, ogni qualvolta che digito una di queste lettere in un'altra riga mi deve apparire la lettere che ho selezionato
con il codice che vi lascio invece della lettera mi appare l'indice dell'array
vi ringrazio anticipatamente
sarei + soddisfatto se una volta trovata la soluzione potete anche spiegermi il perchè<?
session_start();$a_alfabeto = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'z');
print"
<table border='1'>";$x = 0;
for($a = 0; $a < 3; $a++)
{
print"
<tr>";for($c = 0; $c < 7; $c++, $x++)
{
print"
<td width='25'>
<a href='tastiera.php?id=$x'>$a_alfabeto[$x]</a>
</td>";
}
print"
</tr>";
}if(isset($id))
{
$video[] = $id;session_register('video');
for($i = 0; $i < count($video); $i++)
{
print"
<td>
$video*
</td>";
}}
print"
</table";?>
-
Ciao danny1975, se ho capito bene devi mettere $a_alfabeto[$x] anche per l' href
for($c = 0; $c < 7; $c++, $x++) { echo"<td width='25'><a href='tastiera.php?id=". $a_alfabeto[$x] . "'>". $a_alfabeto[$x] . "</a></td>"; }
ho provato e mi da le lettere invece che i numeri. (ho usato echo e una formattazione diversa anche, secondo quello che sapevo, ma forse potrebbe funzionare anche come lo avevi tu), prova...
-
if(isset($id))
{
$video[] = $id;session_register('video'); for($i = 0; $i < count($video); $i++) { print" <tr><td>" . $a_alfabeto* . "<tr></td>"; } }
Con questo codice sono riuscito a far apparire la lettera, ma perchè non mi appare la lettere che ho scelto
Vi spiego: digitando la (a) mi apare la "a", successivamente digitando la (z)mi appare la "b", come mai?
Grazie
-
Non riesco a capire cosa vuoi fare o quale sia il tuo problema, con il codice iniziale, dopo la mia correzione, funziona ovvero che in base a che lettera clicchi, la aggiunge al array video e stampa tutto l'array delle lettere che hai cliccato
nel codice che hai appena postato non capisco cosa volevi fare querchè quello ristampa dinuovo tutto l'array alfabeto in verticale.
Forse volevi fare così: (che era come avevi all inizio ma lo fa in verticale)if(isset($id)) { $video[] = $id; session_register('video'); for($i = 0; $i < count($video); $i++) { print" <tr><td>" . $video* . "<tr></td>"; } }
-
L'ultimo codice che mi hai dato al click delle lettere appare l'indice array,
invece dovrebbe apparire la lettera corrispondente
Grazie per il tuo interessamento
-
Credo che sia perchè non hai fatto la modifica del mio primo post e l'ID che passi nel url per la nuova pagina è il numero invece che la lettera.
A me appare la lettera, guarda [url=http://www.alice.bo.it/tastiera.php]quiil codice completo è questo:
<?php session_start(); $a_alfabeto = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'z'); print"<table border='1'>"; $x = 0; for($a = 0; $a < 3; $a++) { print"<tr>"; for($c = 0; $c < 7; $c++, $x++) { echo"<td width='25'><a href='tastiera.php?id=". $a_alfabeto[$x] . "'>". $a_alfabeto[$x] . "</a></td>"; } print" </tr>"; } if(isset($id)) { $video[] = $id; session_register('video'); for($i = 0; $i < count($video); $i++) { print" <tr><td>" . $video* . "<tr></td>"; } } print" </table"; ?>
-
Jantima un Grazie di cuore per il tuo interessamento
L'esercizio va benissimo, ho visto che ci sono diversi modi di raggiungere un risultato in php, inoltre il tuo è quello che si avvicina di più alle mie caratteristiche di studio.
L'unica perplessità è la parte dell'href, perchè hai cambiato la $x in $a_alfabeto?
Ti invio il codice di un altro esercizio che funziona fortunatamente, e anche li gli ho passato soltanto $k all'id
Forse era possibile anche farlo diversamente? http://www.webextreme.info/lotto.php<table border='1'>
<tr>
<?
session_start();
for($j = 0, $k = 1; $j < 2; $j++)
{
print"
<tr>";
for($i = 0; $i < 5; $i++, $k++)
{
print"
<td width='20' align='center'>
<b><a href='lotto.php?id=$k'>$k</a></b>
</td>";
}
print"
</tr>";
}
?>
<tr>
<td colspan="5"> </td>
</tr>
<tr>
<?
if(isset($id))
{
if(count($casella)< 5)
{
$casella[] = $id;
}
session_register('casella');
for($x = 0; $x < count($casella); $x++)
{
print"
<td align='center'>
<b>$casella[$x]</b>
</td>";
}
}
?>
</tr>
</tr>
</table>
-
perchè $x è lindce dell array ovvero il numero, e diventa l'ID che passi alla pagina quando lo metti nel href,
mentre $a_alfabeto* è la lettera, e se ti serve usare la lettere come ID quando fai if isset($id) ti serve che id contenga la lettera.
Come avevi fatto tu passavi l'indice, ma poi facevi
print"<tr><td>" . $a_alfabeto* . "<tr></td>";
e quindi stampavi la lettera realiva all indice.Sarebbero due modi diversi di operare.
Per il tuo problema che avevi che ti stampava si la lettera ma era sbagliata, non cosa da cosa dipendeva...