Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32

Discussione: Array next()

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    107

    Array next()

    Ciao ragazzi, vorrei fare questa piccola funzione:

    Avere un'array e poterlo scorrere senza stamparlo tutto, ma stampare ogni valore singolo premendo che ne sò un pulsante "next". Quindi la prima volta che avvio mi stampa a video il primo elemento, e con il link "next" mi stampa il secondo, ovviamente facendo sparire il primo e così via ...

    Mi potete dare una mano?

  2. #2
    Codice PHP:
    <?php
    $page 
    basename($_SERVER['PHP_SELF']);
    $arr = array ("a""b""c""d");
    $dim count($arr);
    if (!isset(
    $_GET['inc']))
    {
        
    $inc 0;
    }
    else
    {
        
    $inc $_GET['inc'] + 1;
    }

    echo 
    $arr[$inc];
    echo 
    "

    "
    ;
    if (
    $dim $inc)
    {
        echo 
    '[url="' $page '?inc=' $inc '"]next[/url]';
    }
    else
    {
        echo 
    'array terminato';
    }
    ?>

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    107
    Sei un grande! grazie 1000, ora provo a mettere anche un prev! per andare anche in dietro .. se non riesco ti ricontatto ^^ ..

    p.s Una domandina, perchè in questi casi non si utilizza next() !? e come posso fare per fare in modo che quando arriva all'ultimo elemento dell'array ricomincia da capo? senza terminare lo script insomma?

  4. #4
    Così ti ricomincia da capo quando arriva alla fine


    Codice PHP:
    <?php 
    $page 
    basename($_SERVER['PHP_SELF']); 
    $arr = array ("a""b""c""d"); 
    $dim count($arr); 
    if (!isset(
    $_GET['inc'])) 

        
    $inc 0

    else 

        
    $inc $_GET['inc'] + 1


    if (
    $inc == $dim)
    {
        
    $inc 0;
    }

    echo 
    $arr[$inc]; 
    echo 
    "

    "


        echo 
    '[url="' $page '?inc=' $inc '"]next[/url]'
     
    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    107
    Oddio guarda che soluzione ho scritto -.-'' però funziona:

    Codice PHP:
    $img_dir "slideshow/";
    $page basename($_SERVER['PHP_SELF']);

    $immagini = array("1.jpg","2.jpg","3.jpg","4.jpg","5.jpg");
    $dim count($immagini);
    if (!isset(
    $_GET['inc'])) 

        
    $inc 0;
        
    $dec = -1
    }
    else 

        
    $inc $_GET['inc'] + 1;
        
    $dec $_GET['inc'] - 1;
        
    }

    //echo "$immagini[$inc]";
    if ($dim $inc

    $current $img_dir $immagini[$inc];
    echo 
    '[img]'.$current.'[/img]'."\n";
    if(
    $immagini[$inc] != "1.jpg"){
    echo 
    '[url="' $page '?inc=' $dec '"]Prev | [/url]';
    }
    if(
    $immagini[$inc] != "5.jpg"){
    echo 
    '[url="' $page '?inc=' $inc '"]Next[/url]';
    }
    }
    else
    {
    $current $img_dir $immagini[4];
    //echo "$current";
    echo '[img]'.$current.'[/img]'."\n";
    echo 
    '[url="' $page '?inc=' $dec '"]Prev | [/url]';

    Praticamente il mio obbiettivo qual'è!? di creare uno slide di immagini nella stessa pagina!, quindi facendo così grazie al tuo aiuto ci sono riuscito, ovviamente in maniera spartana, il problema di questa soluzione è PRIMO se inserisco altre immagini, ogni volta le devo andare a mettere a mano nel codice, quindi aggiungendole nell'array,e SECONDO non sono cliccabili, nel senso che se voglio fare delle miniature che quando le clicco si aprono di fianco, oppure di sotto come posso fare?!

    Illuminami!!!

  6. #6
    Se vuoi l'immagine cliccabile la rinchiudi in un link

    <img scr="immagine_piccola">

    La seguente funzione restituisce un array dove ogni valore é un file di una directory.

    Codice PHP:
     function listaDir ($loc) {
        
    $dir opendir("$loc");
        
    $inc 0;
            while (
    false !== ($file readdir($dir))) {
                
    $directory[$inc] = $file;
                
    $inc $inc 1;
            }
        return 
    $directory;
        

    diciamo ad esempio

    $immagini = listaDir (./slideshow/);
    in quest modo l'array $immagini verrà creato al momento in base al contenuto della cartella.

    Se vuoi essere più elegante

    Codice PHP:
    function listaDir ($loc) {
        
    $dir opendir("$loc");
        
    $inc 0;
            while (
    false !== ($file readdir($dir))) {
                
                if (
    eregi("jpg|gif|png"$file))
                {
                
    $directory[$inc] = $file;
                
    $inc $inc 1;
                }
            }
        return 
    $directory;
        

    Così controlliamo anche l'estensione dei file e decidiamo quali estensioni vogliamo accettare.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    107
    Aiuto, però poi io non so come usare quella variabile contenente l'array.

    cioè se scrivo: $immagini = listaDir (./slideshow/);

    come faccio ad estrapolare o a lavorare ogni singolo elemento dell'array?

    Quindi ad esempio in un caso generico con una cartella contenente 1.jpg 2.jpg eccetera?

    Devo scrivere sempre tutto a mano? quindi tipo: echo $immagini[0]; echo $immagini[1]; ecc..

    Altra cosa come dicevi prima, si linko l'immagine ma non mi si apre ad esempio affianco devo cmq farla aprire in un'altra pagina .


    EDIT: No spetta! cosi mi funziona e prende la lista in automatico dalla directory!!! VVoVe:
    Codice PHP:
    <?php

    function listaDir ($loc) { 
        
    $dir opendir("$loc"); 
        
    $inc 0
            while (
    false !== ($file readdir($dir))) { 
                 
                if (
    eregi("jpg|gif|png"$file)) 
                { 
                
    $directory[$inc] = $file
                
    $inc $inc 1
                } 
            } 
        return 
    $directory
         
    }

    $img_dir "slideshow/";
    $page basename($_SERVER['PHP_SELF']);

    $immagini listaDir('slideshow/');

    //echo $immagini[0];

    $dim count($immagini);
    if (!isset(
    $_GET['inc'])) 

        
    $inc 0;
        
    }
    else 

        
    $inc $_GET['inc'] + 1;
        
        
    }
    if (
    $inc == $dim

        
    $inc 0
    }
    //echo "$immagini[$inc]";
    if ($dim $inc

    $current $img_dir $immagini[$inc];
    echo 
    '[img]'.$current.'[/img]'."\n";
    echo 
    '[url="' $page '?inc=' $inc '"]Next[/url]';

    }


    ?>
    L'unica cosa che mi sta sulle scatoline è che ogni volta che premo su NEXT la pagina del sito mi ritorna in alto se c'è lo scrool!!! quindi con la rotellina devo ritornare ogni volta giu

  8. #8
    inserisci la funzione che ti ho inviato all'inizio

    e al posto di $immagini = array .....

    metti $immagini = listaDir(..);

    vedrai che tutto funziona come vuoi tu

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    107
    Ho editato il post sopra scusa

  10. #10
    Il discorso é che invece di dichiarare l'array (e quindi modificarlo ogni volta che abbiamo delle immagini nuove) lo facciamo costruire automaticamente.

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.