Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    elenco link in ordine casuale

    Buongiorno,
    ho un sito in html in cui compare un elenco in ordine alfabetico di aziende fatto così:

    <td>
    Azienda 1
    Azienda 2
    Azienda 3
    Azienda 4
    </td>

    Vorrei che l'ordine di visualizzazione fosse invece casuale, una volta ad esempio in alto l'azienda 3, un'altra volta l'azienda 2 ecc...

    Conoscete una formula php che me lo faccia fare senza dover creare però un database? Ho cercato qualche javascript ma non ho trovato nulla.

    Grazie 1000, Lorenzo.

  2. #2
    carica i link in un array e poi usa array_rand() prima di stamparli.

    http://it.php.net/manual/en/function.array-rand.php

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Mi sono dimenticato di dire che non so nulla di php, se non come inserire il codice in una pagina. Adesso provo a smanettare un po' e spero di riuscirci. Grazie per la risposta.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    eheh ti sei dimenticato un dettaglio da niente...

    Codice PHP:

    // Dichiari un array contenente tutti i tuoi link

    $lista_di_indirizzi = array(

      
    '[url="www.azienda1.it"]Azienda 1[/url]',
      
    '[url="www.azienda2.it"]Azienda 2[/url]',
      
    '[url="www.azienda3.it"]Azienda 3[/url]',
      
    '[url="www.azienda4.it"]Azienda 4[/url]',

    );

    // Dichiari un array che conterrà le tue voci di menu

    $il_tuo_menu = array();

    // Scorri la tua lista ordinata, finchè ci sono ancora elementi 
    while (sizeof($lista_di_indirizzi)>0)
    {
      
    // Calcola un numero casuale compreso tra 0 e l'indice dell'ultimo elemento dell'array
      
    $numero_casuale rand(0,sizeof($lista_di_indirizzi)-1);
      
      
    // Ora usi il numero random come indice di accesso al menu, e copi l'elemento nell'altro array
      
    $il_tuo_menu[] = $lista_di_indirizzi[$numero_casuale];
      
      
    // Cancelli l'elemento appena copiato, cosi non sarà considerato alla prossima iterazione
      
    unset($lista_di_indirizzi[$numero_casuale]);
      
    }

    $menu_html '';

    // Alla fine puoi ottenere l'ouptut con una cosa del genere:
    foreach ($il_tuo_menu as $elemento)
    {
      
    $menu_html .= $elemento;
    }

    // Lo stampi.
    print ("<td>$menu_html</td>"); 
    Non l'ho provato e l'ho scritto un po in fretta e furia, comunque dovrebbe andare.
    Fammi sapere se ci sono problemi

  5. #5
    Una volta che hai l'array basta: http://uk.php.net/shuffle

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    ah, shuffle me la sono scordata

  7. #7
    Grazie mille a tutti e due. Infatti ho preso l'array da Gil Mour e lo shuffle da k.b. :-)
    ora devo solo riuscire ad inserire l'echo in un div e sono a posto :-)
    Grazie davvero tanto. Lorenzo

    Questo è quello che ho creato e funziona.

    <?php
    $lista_di_indirizzi = array(

    'Azienda 1',
    'Azienda 2',
    'Azienda 3',
    'Azienda 4',
    );
    shuffle($lista_di_indirizzi);
    foreach ($lista_di_indirizzi as $lista_di_indirizzi) {
    echo "$lista_di_indirizzi ";
    }
    ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.