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

    Aiuto su "frecce spostamento posizione"

    Buongiorno, mi presento sono Luca Berbera son approdato da poco al mondo dell'asp , fino ad ora ho sempre tentato di cavarmela da solo ma ora avrei proprio bisogno di un aiuto o anche solo un indirizzazione di ragionamento giusto.

    Sto creando un portale fotografico con delle varie gallerie all'interno e ormai sono giorni che mi perdo nei meandri di google ma senza successo per cercare un metodo che mi permetta tramite 2 semplici tasti di far salire o scendere di posizione le gallerie o le foto in esse contenute, ora come ora l'SQL ordina per l'Nr presente nel mio database , ma io ho necessità di poter sposatare in maniera flessibile la posizione (Esempio una galleria al 6° posto premendo la freccia in su si deve spostare in 5° e quella in 5° si sposta in 6° e via discorrendo).

    Ammetto di esser piombato qui senza cercare se un simile problema sia gia stato vagliato, per quello chiedo molto umilmente aiuto, che mi si reindirizzi su qualche tutorial piuttosto già presente su questo, oppure che avere anche solo una spiegazione o idea logica di come fare.

    Ringrazio tutti anticipatamente e spero di essermi spiegato in maniera abbastanza chiara.

    PS: utilizzo ASP semplice non .NET, con database Mysql e programmo in Dreamweaver.

    Saluti a tutti
    Luca

  2. #2
    ciao...

    premessa: il metodo funziona se le tue gallerie sono organizzate in database....e non so come sono strutturati, quindi ti faccio un esempio teorico...

    Se ad esempio tu avessi nel database una tabella che chiamiamo "galleria", che contiene i campi id_galleria, nome_galleria.....ed una seconda tabella che chiamiamo "immagine" che contiene id_immagine, nome_file, id_galleria, height, width,..ecc....
    io aggiungerei semplicemente in entrambe le tabelle un campo numerico chiamato ad esempio galleria_tabindex per la prima tabella e immagine_tabindex per la seconda....a questo punto non dovrai far altro che generare i numeri che ordineranno le gallerie e le immagini, e per spostarli su, giu, a destra o a sinistra, farai una query di update del campo _tabindex che assegnerà il numero adeguato...

    Non so se mi sono spiegato...

  3. #3
    temo di non aver capito molto.. allora la mia tabella inerente alle gallerie e' strutturata nel modo seguente:

    Titolo
    Descrizione
    Id_Ga
    St_Attivo
    Data_in
    Nr_Order -> autonumber
    Nr -> campo chiave univoca, autonumber

    allora io ho inserito il campo Nr_Order per poterlo usare proprio per gli spostamenti di posizione delle gallerie. Nella sua "semplicità" il mio problema sta nel fatto che nella pagina dove c'e' l'elenco di tutte le gallerie accanto ad ogni galleria voglio mettere 2 frecce (su e giù) e a seconda se premo su o giu la galleria si sposta di posizione.
    Curiosando in giro ho visto che si tratta di un'operazione matematica cioe' il sistema deve incrementare di +1 o -1 la galleria che voglio spostare e stessa cosa deve accadere ai valori sopra o sotto la galleria da spostare, un po come uno scambio...

    Esempio di come l'ho pensata io:

    Titolo: Natura; Nr_Order:1

    Titolo: Paesaggi; Nr_Order:2

    Titolo: Ritratti; Nr_Order:3

    Ipotizziamo di voler spostare Paesaggi al primo posto, premendo un'ipotetica freccia in su praticamente Nr_order di Paesaggi deve "scambiarsi" con l'Nr_Order di Natura per ottenere

    Titolo: Paesaggi; Nr_Order:1

    Titolo: Natura; Nr_Order:2

    Titolo: Ritratti; Nr_Order:3

    Stessa cosa se premo la freccia in giù.

    Cosi facendo ipotizzo che premendo a piu' riprese la freccia in giù o in su della galleria da spostare posso metterla in qualunque posizione del del database... almeno credo

  4. #4
    ...esattamente come ti dicevo io...forse non mi ero spiegato bene...

    il campo che hai aggiunto "Nr_order", va benissimo...

    le frecce che tu creerai, serviranno solo per dire al sistema se aumentare o diminuire di 1 quel campo....ovviamente prenderai il numero presente nel record che ha la posizione che ora vuoi assegnare all'altra galleria e lo aggiorni...

    voglio spostare la galleria 3 alla posizione 4....aggiorno il campo "nr_order" che contiene il numero 3, aggiungendo 1, e contemporaneamente aggiorno quello che conteneva il 4 con 3...
    Per le freccette metti poi un controllo che se il nr_order=1 ti presenta solo la freccia per spostare la galleria in posizione 2, e metti un controllo che considera il numero massimo che hai nel campo "nr_order", e quando avrai quel numero proporrai solo la freccia per spostare indietro la galleria.

    Cmq concettualmente è proprio così che devi fare...

  5. #5
    Perfetto ora c'e' la seconda parte

    Nel momento in cui premo ipotizziamo la freccia in su e voglio spostare la mia galleria in prima posizione premo la freccia in su una volta premuta manderà una request querystring ad 'un'altra pagina che chiamero' ordine e inviera' l'Id_Ga (Id della galleria) e l'NR-Order della galleria da spostare, e qui c'e' il mio problema che SQL devo creare perche' il sistema riconosca che deve scambiare il record inviato con la requestquery con quello sopra e non con quello sotto ?

    Grazie ..

  6. #6
    ma per quello non c'è nessun problema...puoi fare in mille modi...
    puoi ad esempio mettere nella freccia in giu come valore querystring "giu" in su metti "su"...oppure metti direttamente il numero "1" e "-1"...poi nella pagina dove fai l'update fai i dovuti controlli...quindi saprai che se la querystring sarà uguale al valore "n", farai un'operazione...altrimenti l'altra...
    Le operazioni poi le fai a livello di codice, con la semplice matematica...
    l'importante era solo inviare l'attuale id del record...oppure l'attuale numero del campo nr_order....

    Per quanto riguarda le SQL, ne fai due di update...e aggiorni i due record in questione, cambiandogli il valore del campo...

  7. #7
    Ci provero', spero di cavarci un ragno dal buco come si suol dire, ti ringrazio per l'aiuto e la disponibilità.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.