• User Attivo

    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";

    ?>


  • User Attivo

    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...


  • User Attivo

    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


  • User Attivo

    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>";
    }
    
    }
    

  • User Attivo

    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


  • User Attivo

    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]qui

    il 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";
    
    ?>
    
    

  • User Attivo

    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>


  • User Attivo

    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...