• User

    incremento variabile

    ciao a tutti..:gthi:

    ..con l'aiuto di qualche programma gia' fatto..
    ..ho messo assieme questo codice...

    
    <html>
    <head>
    <title>milter's smiley</title>
    <script type="text/javascript">
    
    function seleziona(x) {
     document.form1.mybutton.value= "![image](parcheggio.altervista.org/_altervista_ht/test/" + x + ")";
     document.form1.mybutton.select();
     document.form1.mybutton.focus();
    }
    
    
    
    function copyClip(elementID) {
      object=document.getElementById(elementID);
      text2copy=object.value;
      if (window.clipboardData) {
        window.clipboardData.setData("Text",text2copy);
      } else {
        var flashcopier = 'flashcopier';
        if(!document.getElementById(flashcopier)) {
          var divholder = document.createElement('div');
          divholder.id = flashcopier;
          document.body.appendChild(divholder);
        }
        document.getElementById(flashcopier).innerHTML = '';
        var divinfo = '<embed src="_clipboard.swf" FlashVars="clipboard='+escape(text2copy)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
        document.getElementById(flashcopier).innerHTML = divinfo;
      }
    }
    
    </script>
    </head>
    <body>
    
    <table border="1"  bgcolor="fbfbdc" width=100% cellspacing=0>
    <tr>
    <td>
    <center>  <br>
    <form name="form1">
    <input type="text" id="mybutton" name="mybutton" size="30" value="Some default text here.">
    <br><br><input type="button" id="copy" value="Copia il codice" class="formbutton" onclick="copyClip('mybutton');">
    <br><br>
    </form>
    <a href=""><img src="freccia_in.gif"></a>
    <a href=""><img src="freccia_av.gif"></a>
    <br><br>
    <?
    function elencaimg($nome_directory,$array_estensioni_ammesse){
        $array_immagini=Array();
        if(file_exists($nome_directory)){
            $handle = opendir($nome_directory);
            while (false !== ($file = readdir($handle))) { 
                if(is_file($nome_directory.$file)){
                    $estensione = strtolower(substr($file, strrpos($file, "."), strlen($file)-strrpos($file, ".")));
                        if(in_array($estensione,$array_estensioni_ammesse)){
                            array_push($array_immagini,$file);
                        }
                }
            }
            $handle = closedir($handle);
        }
        return $array_immagini;
    }
    
    $array_estensioni_ammesse=array('.jpg','.jpeg','.gif','.png');
    
    // --------------
    // la variabile $seq e' quella che determina in quale directory cercare le immagini
    // dovrebbe poter cambiare clikkando sulle frecce  (attualmente funziona solo con i valori 1-2-3-4
    // avanti = $seq +1 ---- indietro = $seq -1 --- e poi rieseguire il programma
    // --------------
    
    $seq=1;
    
    
    $nome_directory='immagini_'.$seq.'/';
    $array_immagini=elencaimg($nome_directory,$array_estensioni_ammesse);
    $elementi_da_visualizzare=count($array_immagini);
    
    ?>
    
    <table border="1">
    <?
    
    for ( $i = 0; $i < $elementi_da_visualizzare; $i+=5)
    {
      for ( $j = 0; $j <= 4; $j++)
      {
        echo "<td>";
    ?>
    
    <td><a href="" onclick="seleziona('<?=$nome_directory,$array_immagini[$i+$j]?>');return false;"><img src="<?=$nome_directory.$array_immagini[$i+$j]?>" width=100 height=100 border=0></td>
    
    <?
        echo "</td>";
      }
      echo "</tr>";
    }
    echo "</table>";
    ?>
    
    <br>
    <br>
    </table>
    
    
    ```di per se il codice funziona tutto..
    
    ma mi serve il vs aiuto per alcune cosucce..
    * vorrei che, cliccando sulle due frecce ```
    <a href=""><img src="freccia_in.gif"></a>
    <a href=""><img src="freccia_av.gif"></a>
    ``` vorrei in qualche modo incrementare (o diminuire) la variabile $seq che mi determina in quale cartella cercare le immagini ```
    $nome_directory='immagini_'.$seq.'/';
    
    • a fronte di quanto al punto 1. (una volta cambiato il valore a $seq) come faccio a rilanciare il programma??
    • vorrei presentare le immagini in ordine alfanumerico anziche' sparso come adesso
    • vorrei evitare spazi nn occupati da immagini (attualmente a fronte di $j chiude sempre la cinquina)```
      for ( $j = 0; $j <= 4; $j++)
    
    ..ciao e grazie..:gthi:

  • Bannato User Attivo

    1,2)
    fai puntare il link sulla freccia a href="?seq=<?php print $seq;?>"

    poi cambia seq

    $seq=1
    con
    $seq = (isset($_GET["seq"]) && (int)$seq>0) ? $seq : 1;

    e sposta l'assegnazione di $seq prima dell'html delle frecce.

    1. cambia
      return $array_immagini;
      con
      sort($array_immagini);
      return $array_immagini;

    codice da testare.


  • User

    grazie per la risposta..il "sort" funziona..
    ..per quanto riguarda il resto..
    ..ho modificato cosi' il codce..

    
    .............................
    </form>
    <?
    $seq = (isset($_GET["seq"]) && (int)$seq>0) ? $seq : 1;
    ?>
    <a href="?seq=<?php print $seq;?>"><img src="freccia_in.gif"></a>
    <a href="?seq=<?php print $seq;?>"><img src="freccia_av.gif"></a>
    <br><br>
    <?
    function elencaimg($nome_directory,$array_estensioni_ammesse){
    .........................
    ```e testandolo in locale..cliccando sulla freccia avanti ..
    ..punta all'indirizzo..
    

    localhost/test/88/test/link_1.php?seq=1

    
    ..e anche se digito a mano..
    

    localhost/test/88/test/link_1.php?seq=3

    
    idee..?..:?
    
    
    p.s...nn vedo nel tuo codice dove si dovrebbe incrementare o decrementare $seq..

  • Bannato User Attivo

    sorry, ho sbagliato io a darti il codice 🙂
    questo
    $seq = (isset($_GET["seq"]) && (int)$seq>0) ? $seq : 1;
    diventa
    $seq = (isset($_GET["seq"]) && (int)$_GET["seq"]>0) ? (int)$_GET["seq"] : 1;
    $prec = ($seq>1) ? $seq-- : 1;
    $succ = $seq++;

    inoltre:

    <a href="?seq=<?php print $prec;?>"><img src="freccia_in.gif"></a>
    <a href="?seq=<?php print $succ;?>"><img src="freccia_av.gif"></a>


  • User

    nn cambia...

    ..sembra che $seq sia fissa a 2..

    ..oltre all'assegnazione di $prec e $succ ..nn ci vorrebbe un evento che li faccia variare??..:?

    in compenso adesso digitando a mano il link

    localhost/test/88/test/link_1.php?seq=1 (2 o 3 o 4)
    ```funziona...:smile5:

  • Bannato User Attivo

    infatti prec è uguale a seq-- (cioè seq-1) e succ a seq++ (seq+1)


  • User

    ok..pero' clikkando sulle frecce ..succede nulla...😢


  • User

    ...allora prova e riprova..ho notato qualcosa...
    ..che ho riassunto in questo micro codice..

    
    <?
    $seq = (isset($_GET['seq']) && (int)$_GET['seq']>0) ? (int)$_GET['seq'] : 10;
    //
    $prec = ($seq>0) ? $seq-- : 1;
    $succ = $seq++ ;
    //
    echo $seq;
    //
    echo "<a href='a.php?seq=$prec'><img src='freccia_in.gif'></a>";
    //
    echo "<a href='a.php?seq=$succ'><img src='freccia_av.gif'></a>";
    //
    ?>
    
    ```..l'unica differenza rispetto ai tuoi suggerimenti e' che alla prima linea invece di fare $seq=1 faccio $seq=10
    e facendo cosi' ho notato che il programma gira... ma in maniera strana..
    cioe':
    con la freccia di incremento (avanti) $seq diminuisce..
    con la freccia di decremento (indietro) succede nulla...
    
    :?:?

  • Bannato User Attivo

    ecco:
    $prec = ($seq>1) ? $seq-1 : 1;
    $succ = $seq+1 ;

    in quell'altro modo, $seq-- decrementa il valore di $seq e poi l'assegna a $prec e lo stesso fa per $seq++, come sopra invece $seq non cambia di valore, come è giusto che deve essere.

    sorry.


  • User

    ...funziona tutto...!!!!!!....:fumato:

    ..grazie..:ciauz: