Passare variable all'interno della solita pagina cliccando su tabella.

di il
2 risposte

Passare variable all'interno della solita pagina cliccando su tabella.

Buongiorno, premetto che non sono un programmatore ma mi diverto a fare qualche paginetta/script che mi possono essere utili. E mi diverte.
Sto compilando una pagina PHP/JS/HTML per una classifica di giocatori, ma mi sono bloccato cercando di salvare un ID di una riga di una tabella per poterlo riusare come variabile (la procedura è un po' più macchinosa).. 

In pratica sono due tabelle. La prima una lista di giocatori in ordine di punteggio. Vorrei fare in modo che cliccando sulla riga di un giocatore si generi nella parte sottostante una tabella con le partite giocate. E funziona ok. Il problema è che cliccando sulla singola riga attraverso il metodo $_GET la pagina si aggiorna e vorrei che non accadesse. Al clic sulla singola riga del giocatore si evidenzia la riga e non vorrei che si perdesse questa "evidenziazione".. grazie 

Ho provato anche tramite JS ad generare una variabile che poi però non so trattare in PHP all'interno della procedura (clic riga tabella ? ID )

<?php
require_once('./php/config.php');
$q_classifica = "SELECT * FROM giocatori ORDER BY punti DESC";
if($r_classifica = $conn->query($q_classifica))
{
    $indice=1;
 
    echo '<div class="box-class roboto-bold">
    <table style="width: 380px; height: 60px;" border="3" cellpadding="5" cellspacing="5" class="scrolldown prova">
    <thead><tr>
    <th style="width: 60px"></th>
    <th style="width: 245px"></th>
    <th style="width: 46px"></th>
    <th style="width: 29px"></th>
    </tr></thead><tbody>';
    
    while ($row1 = $r_classifica->fetch_array())
    {
        echo '
        <tr class="linketto" id="player_' . $row1['ID'] . '"> 
        <td style="width: 60px">' . $row1['ID'] . '</td>
        <td style="width: 245px"><a href="vedo2.php?ID=' . $row1['ID'] . '">' . $row1['nome'] . '</a></td>
        <td style="width: 46px">' . $row1['punti'] . '</script></td>';
          
            $infortunio = $row1['infortunio'];
            if($infortunio==si){echo '<td style="width: 29px"><img style="width: 30px; height: 22px;" alt="infortunato" src="ambulanza.png"></td></tr>';}
            
            else{
            echo '<td></td></tr>';
            $id = $_GET['ID'];
                }
  
            $indice++;
    }
    echo "</tbody></table></div>";
}
 
 
$a_giocatore = "SELECT nome FROM giocatori WHERE giocatori.id = '$id'";
$p_giocatore = $conn->query($a_giocatore);
while ($row = mysqli_fetch_assoc($p_giocatore))
    {
        $giocatore= $row['nome'];
    }  
    
echo '<H2><div style="text-align: center; width: 380px;" class="roboto-black-italic box-giocatore">' . $giocatore . '</H2></div>';
 
$q_partita = "SELECT * FROM partite WHERE (giocatore_1 = '$giocatore' OR giocatore_2 = '$giocatore') AND (vittoria = '$giocatore') AND (punteggio IS NOT NULL) ORDER BY data DESC";
if($r_partita = $conn->query($q_partita))
    {
        echo '<div style="text-align: center; width: 380px;" class="box-vinte" id="visual"></br>
        <table style="text-align: left; width: 380px;" border="3" cellpadding="3" cellspacing="3" class="vinte">
        <thead><tr>
        <th style="vertical-align: top; width: 120px;"><br></th>
        <th style="vertical-align: top; width: 120px;"><img alt="up" src="vi.png"><br></th>
        <th style="vertical-align: top; width: 70px;"><br></th>
        <th style="vertical-align: top; width: 70px;"><br></th>
        </tr></thead><tbody>';
    
        while ($row1 = $r_partita->fetch_array())
        {
            $data = $row1['data'];
            $timestamp_data = strtotime($data);
            $formato = 'j M Y'; 
            $result = date($formato, $timestamp_data);
            echo '
            <tr>
            <td class="roboto-regular-italic"><font size="1">' . $row1['giocatore_1'] . '</font></td>
            <td class="roboto-regular-italic"><font size="1">' . $row1['giocatore_2'] . '</font></td>
            <td class="roboto-regular-italic"><font size="1">' . $row1['punteggio'] . '</font></td>
            <td class="roboto-regular-italic"><font size="1">' . $result . '</font></td>
            </tr>';
        }
        echo "</tbody></table></div>";
    }
  
    ?>

2 Risposte

  • Re: Passare variable all'interno della solita pagina cliccando su tabella.

    Il punto di partenza e' questo:

    https://en.wikipedia.org/wiki/Single-page_application

    Il problema e' che devi RIVEDERE TOTALMENTE come implementi  il tuo sito Web.

    La cosa positiva, invece, e' che, una volta capito come si fa, 
    separi TOTALMENTE lato client dal lato server (ora stai facendo un polpettone), 
    con conseguente SEMPLIFICAZIONE di tutta l'implementazione.

    Come “dritta a costo zero” ti consiglio, per il lato client:

    1. Backbone.js https://backbonejs.org/ 
    2. jqWidgets https://www.jqwidgets.com/

    .

    Il lato server puoi continuare ad implementarlo in PHP (suppongo!).

    Un'alternativa MIGLIORE e' implementare ANCHE il lato server in Javascript. 
    In questo modo usi un UNICO linguaggio di programmazione per fare TUTTO.
    MOOOLTO meglio del “polpettone”.

  • Re: Passare variable all'interno della solita pagina cliccando su tabella.

    Buongiorno e grazie per l'interesse al mio problema :-)

    Sono assolutamente della tua idea, la cosa migliore sarebbe di rivedere completamente la programmazione dell'intera pagina, dell'intero misi-sito. Magari chissà.. piano piano ci potrei anche riuscire.

    Scrivo qualche riga di codice per “divertimento”.. per passione.. a quasi 50 anni non ho molto tempo per mettermi a studiare troppe cose ;-) anche se mi piacerebbe. Leggo qualche guida di PHP, CSS… provo anche con qualche tutorial di JS.. piano piano qualcosa riesco ad utilizzare e comprendere ma chiaramente il tutto si limita a gioco, passatempo e passione. Con PHP ho fatto qualche semplice script di una manciata di righe per semplificare alcune procedure nel mio lavoro o per coinvolgere i miei figli (piccoli) e far capire loro questo "mondo"… niente di più.

    Quindi, ripeto.. ringrazio per l'interesse e la risposta che trovo pertinente e “giustissima”.. mi sono andato a leggere qualcosa su jqwidgets ma per il momento sono ancora moooolto lontano da certe implementazioni. Finisco qualche tutorial di PHP.. mi immergo un po in JS e poi vediamo. Per il momento questo piccolo mini-sito di ranking funziona e lo uso così.. man mano che acquisisco competenze potrò migliorarlo. Non ho scadenze, non ho furia, non è il mio lavoro, non ci guadagno.. ho la fortuna di farlo a scappatempo e per piacere. Mi piaceva renderlo più UE friendly (si dovrebbe dire più o meno così ;-)).. piano piano vedremo 

    Seguo questo forum ed ho capito molte cose, chiedo poco perchè percepisco che le mie competenze sono decisamente fuori luogo, ma devo dire che a volte si imparano più cose da risposte qua dentro che a vedersi tutorial su Youtube.

    Grazie 

Devi accedere o registrarti per scrivere nel forum
2 risposte