Visualizzazione risultati 1 fino 30 di 30

Discussione: Inserire un id dinamicamente nella barra di stato senza ricaricare la pagina

  1. #1
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito Inserire un id dinamicamente nella barra degli indirizzi senza ricaricare la pagina

    Salve a tutti,

    ho un grosso problema con il javascript. Premetto che ho una pagina php nella quale io richiamo dei dati presenti su un database mysql. Adesso io ho predisposto una tabella che mi elenca degli elementi che ho reso cliccabili ed al click su uno di questi ricarico la pagina inserendone il relativo id (dell'elemento) nella barra degli indirizzi.

    Il mio problema è però che ho inserito anche una barra laterale di scorrimento che ad ogni ricaricamento della pagina ritorna in alto e mi crea problemi di praticità del sito.

    C'è la possibilità di inserire l'id (una volta cliccato su un elemento) dinamicamente nella barra degli indirizzi senza ricaricare la pagina?

    Grazie mille per eventuali aiuti! Buona giornata a tutti
    Ultima modifica di goalmanager : 18-07-2014 alle ore 17.13.47 Motivo: errore nella descrizione

  2. #2
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Implemento la mia richiesta.....

    a) Tutto ciò mi serve per mostrare 'dinamicamente' (se possibile) le caratteristiche dell'elemento selezionato....

    b) Se non sono stato chiaro potreste darmi suggerimenti anche su questo? Nel senso di dirmi dove guardare perchè sto cercando online ma non trovo nulla che faccia al mio caso...

    Grazie ancora....

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    17,752

    Predefinito

    Se non ho capito male, semplicemente così:

    Codice HTML:
    <a href="#nome_id"> link </a>
    Esempio.

    Ciao!
    Ultima modifica di alemoppo : 18-07-2014 alle ore 19.59.48

  4. #4
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    654

    Predefinito

    Citazione Originalmente inviato da goalmanager Visualizza messaggio
    ...
    al click su uno di questi ricarico la pagina inserendone il relativo id (dell'elemento) nella barra degli indirizzi
    ...
    non capisco bene questo... intendi forse una cosa del tipo:
    <div id="mioID"> elemento con ID
    e quando ci 'clicchi sopra' questo id dovrebbe andare nella barra degli indirizzi..
    ..tipo : http://sito/pagina.php?id

    cioe' intendi passare ID di un elemento ad una pagina php senza caricare la pagina ?

    non e' molto chiaro ..

    ... Tutto ciò mi serve per mostrare 'dinamicamente' (se possibile) le caratteristiche dell'elemento selezionato....
    cioe' vuoi mostrare il dettaglio di un elemento .. quindi ricapitolando:
    hai degli elementi in un DB ogni elemento ha un identificativo , un nome o una immagine ed un dettaglio
    all'inizio mostri in una tabella gli elementi con il nome o immagine che sia , e quando clicchi sull'elemento
    vuoi che si mostri il dettaglio dello stesso.

    ? spero sia giusto ..

    Se ho capito bene , ed e' questo quello che cerchi , non c'e' bisogno di passare ID alla pagina e ricaricarla..

    ma spiega meglio cosa vuoi..
    Ultima modifica di NLSweb : 18-07-2014 alle ore 20.23.35

  5. #5
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Ciao!! Innanzitutto vi ringrazio un sacco.... Ale è un piacere risentirti!!! e NL Sweb è un piacere 'conoscerti'.... si effettivamente (come al mio solito) non mi sono espresso bene!!! Ho persino corretto la mia richiesta iniziale perchè avevo scritto barra di stato anzichè barra degli indirizzi....è che spesso trovo difficoltà a chiamare le questioni con il loro nome, nel senso che non ne conosco il nome...

    Comunque venendo al nocciolo della questione cerco di farvi capire cosa volevo dire con il mio linguaggio 'stordito'.....è un qualcosa che ha come incipit il suggerimento di Ale....ma per farvi capire meglio vi spiego la pagina che ho come è fatta e poi come vorrei che fosse fatta...

    Allora attualemente ho una pagina php che mi serve per far si che l'utente una volta selezionato un giocatore con un click ne veda le caratteristiche...

    Per fare questo ho allora fatto uso di una tabella (generata con php) che mi prende i dati dal database...ho poi fatto ricorso ai css perchè in fondo alla pagina ho ricreato una sorta di scheda riassuntiva cosìcchè al click sul giocatore mi si ricaricava la pagina, mi si inseriva l'id nella barra degli indirizzi, si aggiornava la scheda.... e tutto torna senza problemi.... anche apprezzabile a mio avviso considerando la fatica che faccio ancora a masticare questo mio primo progetto....

    Detto questo però ho un problema, ho inserito con java una barra laterale di scorrimento (perchè i nominativi erano molteplici) e ogni volta che ricarico la pagina (al click su un giocatore per intendersi) questa torna in cima e per l'utente credo che sia poco congeniale questa cosa...

    Allora considerato la potenza di javascript mi sono chiesto se si poteva fare quanto faccio attualmente senza ricaricare la pagina, in modo tale da consentire all'utente di vedere i dati dei giocatori sui quali clicca senza diciamo 'sbavature di praticità' e quindi vorrei consentirgli di cliccare su un nominativo, inserire il codice id nella barra degli indirizzi (cosa che con il tuo suggerimento Ale adesso posso fare, mentre prima passavo un ricaricamento della pagina stessa), poi...(qui non so come fare perchè ci ho provato fin'ora ma non mi viene nulla) prendere l'id passato e usarlo per riempire la tabella posta in fondo alla pagina...

    secondo voi è fattibile? E ancora (da come ho letto su internet) è vero che non si può fare? Mi sembra strano...

    Grazie ancora infinite e a presto...

    EDIT:

    preciso: la scheda finale altro non è che una tabella che attualmente implemento con css con i dati presi dal database una volta che ottengo l'id nella barra degli indirizzi....
    Ultima modifica di alemoppo : 19-07-2014 alle ore 02.05.13 Motivo: aggiunta

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    17,752

    Predefinito

    Citazione Originalmente inviato da goalmanager Visualizza messaggio
    Detto questo però ho un problema, ho inserito con java una barra laterale di scorrimento (perchè i nominativi erano molteplici) e ogni volta che ricarico la pagina (al click su un giocatore per intendersi) questa torna in cima e per l'utente credo che sia poco congeniale questa cosa...
    Con javascript vorrai dire .

    Se ho capito il problema, vuoi scrollare un elemento (non ho capito se è la pagina stessa, o altro). Comunque dovresti usare scrollTop().

    Esempio con textarea.

    Ciao!

  7. #7
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Buongiorno a tutti..

    la mia (unica) pagina php è attualmente fatta così..

    -inizio con la connessione al database
    -parte javascript (non java giusto ;-) ) con il quale imposto che la tabella abbia le righe di colore sfalsato, il tablesorter, che al passaggio del mouse il nominativo diventi in grassetto ecc..
    -parte css con i quali 1) ho impostato una barra laterale di scorrimento alla cella che contiene tutti i nominativi 2) ho impostato che nella scheda finale (un'altra tabella) a seconda dell'id contenuto nella barra degli indirizzi (che recupero tramite get) mi varino i dati e la foto del giocatore (tutto tramite connessione al database ovviamente)
    -poi ho l'echo di tutti i nominativi, e cliccando su uno di essi mi ricarica la pagina e mi mette l'id nella barra indirizzi ma, con l'inconveniente che se il nominativo è nel fondo dopo aver 'scrollato' la pagina, il ricarico mi ritorna all'inizio della barra di scorrimento, e l'utente quindi dovrebbe nuovamente scrollare tutti i nominativi sino a raggiungere quello successivo a quello sul quale ha cliccato...
    -poi ho la scheda che si aggiorna

    Ecco Ale io ho realizzato qualcosa come il tuo esempio, ma cliccando sul nome 98 (per esempio), mi si ricarica la pagina (per poter inserire l'id del giocatore nella barra degli indirizzi e per far vedere le variazioni della scheda finale che è agganciata all'id presente nella barra degli indirizzi..) e quindi l'utente per andare al nome 99 si deve 'riscrollare' tutta la pagina ed è poco carino questo...
    Adesso so che è possibile inserire l'id nella barra senza ricaricare la pagina ma come prendo quell'id dinamicamente? e come aggiorno la tabella finale dinamicamente?

    Il tuo ultimo suggerimento Ale, mi consente anche di bloccare lo scroll nonostante il ricarico della pagina? Perchè a me servirebbe o caso a) 'il bloccare lo scroll al ricarico della pagina' (ma non credo si possa fare) oppure caso b) prendere l'id al click dinamicamente e sempre dinamicamente aggiornare la scheda (ma non so nè se si possa fare, nè se è alla mia portata...ho cercato bel pò ieri notte nel web e credo si tratti di ajax se non ho capito male, ma in tal caso dovrei oltre che reperire quell'id far si che le parti della tabella finale mutino in base a quel dato preso...)

    Forse ho sottovalutato il problema...
    Ultima modifica di goalmanager : 19-07-2014 alle ore 10.24.53

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    17,752

    Predefinito

    Citazione Originalmente inviato da goalmanager Visualizza messaggio
    -poi ho l'echo di tutti i nominativi, e cliccando su uno di essi mi ricarica la pagina e mi mette l'id nella barra indirizzi ma, con l'inconveniente che se il nominativo è nel fondo dopo aver 'scrollato' la pagina, il ricarico mi ritorna all'inizio della barra di scorrimento, e l'utente quindi dovrebbe nuovamente scrollare tutti i nominativi sino a raggiungere quello successivo a quello sul quale ha cliccato...
    -poi ho la scheda che si aggiorna
    Come aggiorni la scheda? (puoi mostrare il pezzo di codice?) Perché da quel che ho capito, invece di aggiornar la pagina con l'url corrente, è sufficiente far aggiornare la pagina sia con l'url corrente, ma mettendo alla fine #id_premuto:
    Codice:
    pagina.php#id_premuto
    Ciao!

  9. #9
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Si...posto ciò che credo sia rilevante perchè la pagina intera è mega lunga (ci sono altre cose dentro) ecco perchè non lo avevo fatto prima....

    Allora quando con php faccio l'echo di tutti i nominativi io li passo così...

    Codice:
    ...
     echo"<tr id='righeeve'>   
      
    
      
      <td  title='Numero di maglia' ><a href=#".'?'.'cod='.$row[id]."> {$row['numeromaglia']}. </a></td>
      
     <td title='Ruolo'><a href=".$_SERVER['PHP_SELF'].'?'.'cod='.$row[id].">{$row['ruolo']} </a></td>
    ...
    la prima riga <td> l'ho modificata dopo il tuo suggerimento per fare una prova :-) (altrimenti sarebbe stata come la seconda che al click mi ricarica la pagina e mi mostra l'id nella barra indirizzi)

    ...effettivamente questa modifica mi mette nella barra degli indirizza l'id del giocatore sul quale clicco...

    e la barra viene così....www.ecc... .php#?cod=1 e se clicco sul secondo .php#?cod=2 (i numeri sono altri ma serve a farti capire)

    fin qui tutto ok...

    adesso io in fondo alla pagina ho una tabella che richiama i dati del giocatore, ad esempio il nome (ma ci sono anche la faccia, il ruolo, ecc... sintetizzo per non oberarti di codice....)


    Codice HTML:
    <table class="individuagiocatore">
    <tr>
    <td >
    <?php 
    if(isset($_GET['cod'])){  
        $codice=htmlspecialchars($_GET['cod']);  
       // echo $_GET['cod'];//questo è l'id giocatore
        }
        
        $mioplayerg=mysql_query("SELECT * FROM players where id = '$codice' AND squadra = '$teamnow'");
        while( $row=mysql_fetch_array($mioplayerg)){
        
        
        echo $row['nome'];
        
       
        
        }
        
            
        
        
    ?>
    </td>
    </tr>
    </table>
    prima io cliccando sul singolo giocatore ricaricavo la pagina e quindi la scheda in fondo si aggiornava...adesso (visto il problema della barra di scorrimento che torna su ed è esteticamente brutta come cosa) con il tuo suggerimento riesco a mettere l'id nella barra di stato ma vorrei recuperarlo 'dinamicamente' cosa che non posso fare col codice di adesso perchè la pagina non viene ricaricata....

    Ho qualche dubbio sulle mie capacità di linguaggio, ma spero di averti fatto capire...sennò chiedi pure... GRAZIE MILLE!!

  10. #10
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    654

    Predefinito

    Posso suggerirti un'alternativa...

    la tabella di sotto con i dettagli del giocatore attualmente viene caricara dalla pagina in cui ti trovi con lo stesso codice php
    se invece a pie' di pagina inserisci un iframe che richiama una altra pagina php crea crea solo idettagli del giocatore
    (src="pagina.php?id_giocatore")
    questo ti permetterebbe di caricare qualsiasi dettaglio senza riaggiornare la pagina principale e senza farti perdere la posizione nello scroll verticale.
    Aggiungo che con i css , assegnando un id al iframe , puoi far si che la 'tabella dettagli' appaia in una cornice carina , dimensionata come vuoi tu , con possibile scroll indipendente e posizionabile ovunque (anche in sovrapposizione) nella pagina principale.

    se mi dai un po' di tempo ti posso scrivere un esempio..

  11. #11
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Grazie per il suggerimento...

    vediamo se ho capito (iframe non l'ho mai utilizzato)....

    Io praticamente mantengo la stessa pagina (per dargli un nome generico 'pagina base0') solo che inserisco la tabella riassuntiva dei dati del giocatore in un iframe (nella stessa pagina php 'pagina base0') e quando clicco su un giocatore l'id me lo manda ad un'altra pagina ('pagina base1') dalla quale la pagina base0 pesca il dato?

    Ma questo avviene dinamicamente? Nel senso che, è javascript oppure no? Intanto mi documento sull'iframe....

  12. #12
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    654

    Predefinito

    In pratica tu hai due file php , la pagina tua attuale (esempio principale.php) e la pagina per recuperare il dettaglio (esempio dettaglio.php)

    nella principale avrai alla fine del BODY
    Codice:
    <iframe id="cornice" src=""></iframe>
    mentre nel PHP quando generi la tabella iniziale , dovrai associare ad ogni elemento un pulsante che ti apra una funzione a cui passi il parametro ID del dettaglio

    esempio:
    Codice:
    <button onclick=\"apriDettaglio(".$id_dettaglio[$i].")\">Dettagli</button>
    e nel HEAD avrai un JS con la funzione :

    Codice:
    function apriDettaglio(dettaglio){
     var pagina = "dettaglio.php?ID="+dettaglio;
     $("#cornice").attr('src',pagina);
    }
    quindi ogni volta che clicchi sul pulsante passi ID del dettaglio alla funzione che carica nel iframe la pagina php che a sua volta preleva il dettaglio stesso (piu' facile a farsi che ha spiegare..)

    nella pagina PHP dettaglio avrai un GET che preleva il dato che gli passi
    Codice:
    $ID = $_GET['ID'];
    quindi nella tua query avrai una ricerca in cui ID del ettaglio sia uguale a $ID
    trovato il dettaglio non ti rimane che creare la tabbella per visualizzarlo .

    Quindi riassumendo , la pagina principale avra' al pie' di pagina un iframe che carichera' il dettaglio da un file esterno.

  13. #13
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Ci provo subito....Speriamo!!

  14. #14
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    654

    Predefinito

    ho creato un esempio molto semplificato...

    sei hai bisogno ti passo il sorgente..
    Ultima modifica di NLSweb : 19-07-2014 alle ore 15.43.29

  15. #15
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Purtroppo non sono riuscito e sono sicuro che la cosa dipende da me...nel senso che sicuramente sono incappato in qualche errore...

    Possiamo procedere per gradi? allora ho creato due pagine php (la principale cambio.php e iframe.php quella del 'dettaglio')

    in fondo alla pagina cambio.php io ho inserito questo


    Codice:
    <iframe id="cornice" src="iframe.php" width="600" height="300">
    
    
    </iframe>


    A questo punto ho modificato la parte php della pagina cambio.php inserendo prima di ciascun elemento il bottone



    Codice PHP:

    //salto la parte relativa alla query che non cambia



    <td><button onclick=\"apriDettaglio(".$row[id].")\">Dettagli</button></td>
      
      <td  title='Numero di maglia' ><a href=#"
    .'?'.'cod='.$row[id]."> {$row['numeromaglia']}. </a></td>
     <td title='Ruolo'><a href="
    .$_SERVER['PHP_SELF'].'?'.'cod='.$row[id].">{$row['ruolo']} </a></td> 

    ho quindi inserito nell'head il codice javascript


    Codice:
     <script type="text/javascript"> 
      
      
     function apriDettaglio(dettaglio){
     var pagina = "iframe.php?cod="+dettaglio;
     $("#cornice").attr('src',pagina);
    }
    
    </script>

    ho modificato in parte perchè ho cambiato il nome alle pagine e perchè ho cod anzichè ID. Ho sbagliato qualcosa, o più cose , in questa parte?

  16. #16
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    654

    Predefinito

    Ci sono alcuni errori..

    il src del iframe non puo' essere gia' impostato ! in quanto gli devi passare la variabile del ID

    allora... il link sull'elemento che apre il dettaglio deve lanciare la funzione JS e passargli ID del dettaglio stesso
    e la funzione JS dice all'iframe caricami la pagina php dove id e' uguale ha ..

    esempio della pagina principale

    Codice:
    ...
    <script> 
    function apriDettaglio(dettaglio){
     var pagina = "dettaglio.php?ID="+dettaglio;
     $("#cornice").attr('src',pagina);
    }
    </script>
    ...
    <body>
    <?php
    $con=mysqli_connect("localhost","....","","....");
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    
    $result = mysqli_query($con,"SELECT * FROM la tua tabella WHERE tipo='.....'");
    
    $titolo=array();
    
    echo  "<ul>";
    $i=0;
    while($row = mysqli_fetch_array($result)) {
      $titolo[$i]=$row['titolo'];
      $id_dettaglio[$i]=$row['ID'];
     
    echo  "<li class=\"titolo\">".$titolo[$i]."</td><button onclick=\"apriDettaglio(".$id_dettaglio[$i].")\">Dettagli</button>";
    
     $i = $i +1; 
    
    }
    echo  "</ul>";
    mysqli_close($con);
    ?> 
    
    <iframe id="cornice" src=""></iframe>
    </body>
    e nella pagina che recupera il dettaglio

    Codice:
    ...
    $ID = $_GET['ID'];
    $query = "SELECT * FROM `tua tabella` WHERE `ID`=$ID";
    ...

    Scusa per le continue modifiche .. ma come vedo una cosa poi la implemento...

    tu scrivi
    <td title='Numero di maglia' ><a href=#".'?'.'cod='.$row[id]."> {$row['numeromaglia']}. </a></td>
    <td title='Ruolo'><a href=".$_SERVER['PHP_SELF'].'?'.'cod='.$row[id].">{$row['ruolo']} </a></td>
    ma nel metodo che stiamo utilizzando non servono gli href ! basta il pulsante !

    quindi
    Codice:
     "<td  title='Numero di maglia' >".$row['numeromaglia']."</td>";
     "<td title='Ruolo'>".$row['ruolo']."</td>";
    Ultima modifica di NLSweb : 19-07-2014 alle ore 17.10.52

  17. #17
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    17,752

    Predefinito

    Scusate se mi intrometto ma gli iframe proprio non mi piacciono (non che sia sbagliato usarli, anzi, a volte son necessari).

    Premetto che non ho letto attentamente tutto quanto scritto da goalmanager, ma limitandomi a vedere l'esempio di NLSweb ne ho fatto uno simile senza iframe e jQuery: Esempio

    La parte ajax è presa da qui.

    Codice HTML:
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title> titolo </title>
    <style type="text/css">
    #contenuto {width: 500px; height:400px; overflow: scroll;}
    </style>
    </head>
    <body>
    <script type="text/javascript">
    function createXMLHttpRequest() {
      req = false;
    // branch for native XMLHttpRequest object
      if(window.XMLHttpRequest) {
        try {
          req = new XMLHttpRequest();
        } catch(e) {
          req = false;
        }
    // branch for IE/Windows ActiveX version
      } else if(window.ActiveXObject) {
        try {
          req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
          try {
            req = new ActiveXObject("Microsoft.XMLHTTP");
          } catch(e) {
            req = false;
          }
        }
      }
      return req;
    }  
    
    function mostra(id) {
      var req = createXMLHttpRequest();
    
      if (!req) return true;
    
      req.open('GET', './dettaglio.php?id=' + id, true);
      
      req.onreadystatechange = function() {
        if (req.readyState == 4) {
          if (req.status == 200) {
            if (req.responseText != '') {
              document.getElementById('contenuto').innerHTML = req.responseText;
            }
          }   
        }
      }
      req.send(null);
      return false;
    }  
    
    for(var i=0;i<5;i++)
    {
    	document.write("<button onClick='mostra(\""+i+"\")'>Pulsante "+(i+1)+"</button>");
    }
    
    </script>
    <div id="contenuto"></div>
    </body>
    </html>
    Ciao!
    Ultima modifica di alemoppo : 19-07-2014 alle ore 17.44.01

  18. #18
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    654

    Predefinito

    alemoppo mi piace molto di piu' il tuo esempio del mio !!!

    grazie per essere intervenuto !

  19. #19
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Mi dispiace...non riesco con entrambe le soluzioni...

    credo sia un livello troppo addentrato per me...

    Provo a documentarmi nuovamente con ciò che mi avete segnalato...

    Non ho capito nemmeno la differenza tra le due soluzioni alla fin fine....

    rendetevi conto di come sono messo male...nonostante da giorni sbatto la testa su questa cosa...

    C'è la faccina amarreggiato? :-((((((

  20. #20
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    654

    Predefinito

    quali problemi riscontri...
    se vuoi posta il codice o segnala il link

  21. #21
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Una cosa che non capisco però è come collegare il button alla mia tabella nomi. Vi spiego...

    Io nella pagina principale interrogo il database in questo modo


    Codice:
    $myteam=mysql_query("SELECT * FROM players where team= '$team'");
    echo'<table class="righealterne" border="2" id="myTable">
    
    <thead><tr >
    
    <th title="Numero di maglia"><img src="/imm/num.png"></th>
    <th title="Ruolo" colspan="2"><img src="/imm/pos.png"></th>
    <th  title="Nome del giocatore">Nome</th>
    <th  title="Nazionalità"><img src="/imm/naz.png"></th>
    <th title="Età del giocatore"><img src="/imm/eta.png"></th>
    <th title="Skill del giocatore"><img src="/imm/skill.png"></th>
    
    </tr></thead><tbody>';
    
    while( $row=mysql_fetch_array($myteam)) 
    
    { 
      echo"<tr>     
      
      <td title='Numero di maglia'><a href=".$_SERVER['PHP_SELF'].'?'.'cod='.$row[id]."> {$row['numero']}. </a></td>
     <td title='Ruolo'><a href=".$_SERVER['PHP_SELF'].'?'.'cod='.$row[id].">{$row['ruolo']} </a></td>
      <td title=".$row['nome']."><a href=".$_SERVER['PHP_SELF'].'?'.'cod='.$row[id]."> {$row['nome']} </a></td>  
      <td title=".$row['nazionalita']."><img src=".'/bandiere/'.$row['nazionalita'].'.gif'."></td>
      <td title='Età del giocatore'><a href=".$_SERVER['PHP_SELF'].'?'.'cod='.$row[id]."> {$row['eta']} </a></td>
      <td title='Skill del giocatore'><a href=".$_SERVER['PHP_SELF'].'?'.'cod='.$row[id]."> {$row['skill']} </a></td>
    
    </tr>";   
      } 
         echo'</tbody></table>';


    come posso inserire il button qui? Ad inserirlo ci sono riuscito così...ma come faccio a collegarlo con il mio id che sarebbe $row[id]


    Codice:
    $myteam=mysql_query("SELECT * FROM players where team= '$team'");
    echo'<table class="righealterne" border="2" id="myTable">
    
    <thead><tr >
    
    //novità
    <th title="Guarda dettaglio"><img src="/imm/dettaglio.png"></th>
    //novità
    
    <th title="Numero di maglia"><img src="/imm/num.png"></th>
    <th title="Ruolo" colspan="2"><img src="/imm/pos.png"></th>
    <th  title="Nome del giocatore">Nome</th>
    <th  title="Nazionalità"><img src="/imm/naz.png"></th>
    <th title="Età del giocatore"><img src="/imm/eta.png"></th>
    <th title="Skill del giocatore"><img src="/imm/skill.png"></th>
    
    </tr></thead><tbody>';
    
    while( $row=mysql_fetch_array($myteam)) 
    
    { 
      echo"<tr>  
    
    //qui la novità
    
    <td><button onclick=\"apriDettaglio(".$row[id].")\">Dettagli</button></td>
    
    //qui la novità
    
    
      
      <td title='Numero di maglia'> {$row['numero']}. </td>
     <td title='Ruolo'>{$row['ruolo']} </td>
      <td title=".$row['nome']."> {$row['nome']} </td>  
      <td title=".$row['nazionalita']."><img src=".'/bandiere/'.$row['nazionalita'].'.gif'."></td>
      <td title='Età del giocatore'> {$row['eta']} </td>
      <td title='Skill del giocatore'> {$row['skill']} </td>
    
    </tr>";   
      } 
         echo'</tbody></table>';
    Ultima modifica di goalmanager : 19-07-2014 alle ore 23.36.29

  22. #22
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    654

    Predefinito

    fin qui tutto bene ...

    ora se vuoi seguire il mio esempio devi aggiungere dopo la chiusura della tabella </table> e prima della chiusura del body </body>
    inserisci iframe <iframe id="cornice" src=""></iframe> come nell'esempio sopra illustrato.

    in testa al documento inserisci lo script , quindi avrai:
    Codice:
    <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script> 
    function apriDettaglio(dettaglio){
     var pagina = "dettaglio.php?ID="+dettaglio;
     $("#cornice").attr('src',pagina);
    }
    </script>
    <style>
    ....
    </style>
    </head>
    questa pagina web e' completa ! non devi fare altro ..

    quando hai completato questa passaggio , dimmelo cosi' passiamo al prossimo
    Ultima modifica di NLSweb : 19-07-2014 alle ore 23.41.01

  23. #23
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Ma quindi io solo con questo

    button onclick=\"apriDettaglio(".$row[id].")

    passo $row[id] a dettaglio.php ???

    E scusa, perchè forse a me conviene una combo tra entrambi i vostri suggerimenti, in cosa si differenzia il suggerimento di Alemappo dal tuo? Con il tuo creiamo un iframe. Mentre col suo?

  24. #24
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    654

    Predefinito

    sono tecniche diverse , il mio esempio usa un iframe quello di alemoppo invece no ,
    nel suo caso utilizza AJAX per passare la richiesta del dettaglio , ad un <div> .

    ma a parte le differenze di linguaggio , il principio di base e' lo stesso

    clicchi , quindi passi id al file php che provvede a caricarlo , e ti restituisce il dettaglio

    e... no ... non conviene una 'combo' ...


    per essere piu' chiari
    al click del button esegui la funzione JS a cui passi come argomento ID
    la funzione quindi esegue il file php chiedendogli di trovare ID ( php?id )
    dopo io carico direttamente tutto il file php del dettaglio nel iframe
    mentre alemoppo 'cattura' la risposta del file php e la inserisce in un div
    Ultima modifica di NLSweb : 20-07-2014 alle ore 00.07.20

  25. #25
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Vabbè ora proviamo col frame....

    ma poi vorrei anche provare il suo....

    ai miei fini uno vale l'altro, ma vorrei imparare più cose possibili perchè a volte vedo che proprio non so le cose e mi viene la 'depressione' (ovviamente si fa per dire.....quasi :-) )

    Comunque ho completato la pagina....adesso devo fare la pagina dettaglio.php

    dove metterò la connessione al database...e poi il get...ma come lo inserisco....??

    devo considerare ID o row[id]?

  26. #26
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    654

    Predefinito

    ecco il file dettaglio.php ..

    Codice:
    <!DOCTYPE html>
    <html>
    
    <body>
    
    <?php
    $con=mysqli_connect("localhost",".......","","........");
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    $ID = $_GET['ID'];
    $query = "SELECT * FROM `tua tabella` WHERE `ID`=$ID";
    
    $result = mysqli_query($con,$query) or die(mysql_error()); 
    
    while($row = mysqli_fetch_array($result)) {
     $controllo = $row['ID'];
     if ($controllo==$ID){
      $foto = $row['foto'];
      $data = $row['data'];
      $testo = $row['testo'];
     }
    }
    
     
    echo "<table>";
    echo  "<tr>";
    echo    "<td rowspan=\"3\" class=\"foto\"><img src='".$foto."' /></td>";
    echo    "<td class=\"titolo\">".$row['titolo']."</td>";
    echo  "</tr>";
    echo  "<tr>";
    echo    "<td class=\"data\">".$data."</td>";
    echo  "</tr>";
    echo  "<tr>";
    echo    "<td class=\"breve\">".$testo."</td>";
    echo  "</tr>";
    echo "</table>";
    
    
    mysqli_close($con);
    ?> 
    
    </body>
    </html>
    chiaramente queste e' un esempio semplificato , poi deciderai tu quali campi prendere e come creare il dettaglio della tabella

    il cuore della ricerca del tuo ID e' questo :
    Codice:
    $ID = $_GET['ID'];
    $query = "SELECT * FROM `tua tabella` WHERE `ID`=$ID";
    con GET prendi il valore che gli hai passato prima ( php?id ) e lo usi per eseguire la query
    Ultima modifica di NLSweb : 20-07-2014 alle ore 00.18.46

  27. #27
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Ok.... intanto ti ringrazio infinitamente!!! Ora lo metto subito in pratica cercando di ricreare la medesima tabella che ho nella mia vecchia pagina....Poi se ne avete voglia avrei la curiosità di provare il suggerimento di Ale...

    PS Prima comunque ho sbagliato perchè non avevo capito che in dettaglio.php ci andava la tabella...pensa che duro....

  28. #28
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    654

    Predefinito

    OK , facci sapere come va..
    chiedo scusa ad alemoppo se mi permetto di illustrare il suo esempio in modo un po' diverso..

    avrai sempre due file , uno principale.php e l'altro il dettaglio.php
    il secondo ( il dettaglio ) non cambia rispetto a quando detto sopra
    il primo cambia solo nello script in questo modo:
    {[( .. uso la notazione php solo per evidenziare meglio il codice ..)]}
    Codice PHP:
    <script>
    /* AJAX = Asynchronous JavaScript and XML */

    function loadXMLDoc(id)
    {
    /* questa prima parte della funzione apre la comunicazione con il server in background , senza dover riaggiornare la pagina */


    var xmlhttp;
    if (
    window.XMLHttpRequest)
      {
    // codice per le nuove versioni di browser che hanno XMLHttpRequest integrato IE7+, Firefox, Chrome, Opera, Safari
      
    xmlhttp=new XMLHttpRequest();
      }
    else
      {
    // codice per le vecchie versioni di browser  IE6, IE5
      
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      
      
    /*  qui catturiamo l'evento di quando il readyState cambia  */ 
    /* 0: richiesta non inizializzata                                      */
    /* 1: connessione con il server attivata                         */
    /* 2: il server ha ricevuto la richiesta                            */
    /* 3: il server sta eseguendo la richiesta [query]            */
    /* 4: il server ha finito e la risposta e' pronta !               */
    /* mentre lo STATUS e' lo stato della pagina , cioe' : 200: "OK" 404: Page not found */

    xmlhttp.onreadystatechange=function()
      {
      if (
    xmlhttp.readyState==&& xmlhttp.status==200)
        {
        
    /* qui si inserisce la risposta dal server (quindi l'informazione che abbiamo chiesto al nostro file php    */
        /* di prendere dal DataBase , e la si passa al nostro elemento (in questo caso un div)                      */
        /* da notare che abbiamo richiesto una stringa come risposta , questo perche' non stiamo usando un file XML */
        /* altrimenti avremmo dovuto usare responseXML                                                              */
        
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
        }
      }

    /* qui apri il file dettaglio.php a cui passi la richiesta id e imposti il parametro asincrono=true        */ 
    /* l'importanza di avere una comunicazione asincrona e' che JS non deve aspettare la risposta del server  */
    /* ma puo' continuare ad eseguire il codice ed eventualmente a ritardare la risposta in attesa del server */ 
    /* in questo modo non si creano "colli di bottiglia" , ovvero rallentamenti dovuti a lunghe attese        */
    /* chiaramente se si imposta asincrono=false (quindi sincrono) JS fermera' l'esecuzione del codice fino a */
    /* quando il server non gli avra' fornito la risposta ..                                                  */

    xmlhttp.open("GET","dettaglio2.php?ID="+id,true); 
    xmlhttp.send();  
      
    /* da notare che AJAX puo' usare sia ASP che PHP */  
      
    }
    </script> 
    poi chiaramente al pulsante che creiamo nell parte php
    Codice PHP:
    <button onclick=\"loadXMLDoc(".$id_dettaglio[$i].")\">Dettagli</button> 
    ed invece del iframe e pie' di pagina avremo un semplice DIV
    Codice:
    <div id="myDiv"></div>
    esempio finale
    Ultima modifica di NLSweb : 20-07-2014 alle ore 01.54.20

  29. #29
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Allora sono riuscito con l'iframe e sono a dir poco gasatissimo!!! :-)

    Appena posso, provo subito il metodo di Ale...

    Ancora ancora ancora grazie mille....oggi ho scoperto qualcosa di assolutamente grande!!!!! Buonanotte

  30. #30
    goalmanager non è connesso Utente
    Data registrazione
    08-03-2014
    Messaggi
    140

    Predefinito

    Buongiorno.

    Ho provato anche il metodo di Ale....sono riuscito con entrambi....mi servono entrambi per 2 pagine diverse che ho....perchè scoperta questa (per me) 'rivoluzione' adesso voglio applicarla alle altre pagine che attraverso questo 'meccanismo' risulterebbero davvero più gradevoli per l'utente...

    Non so davvero come ringraziarvi. Grazie a voi davvero il mio progetto, se e quando diventerà effettivo, risulterà sensibilmente migliore rispetto a quello che avevo fatto prima...GRAZIE MILLE AD ENTRAMBI!!!!!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •