Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di elisa21
    Registrato dal
    May 2004
    residenza
    Lucca
    Messaggi
    246

    ordinare immagini galleria su scelta admin

    Ciao a tutti,
    ho realizzato una semplice galleria con possibilità di catalogazione immagini in varie categorie create liberamente dall'admin.
    Ho necessità di far impostare all'admin anche l'ordine di visualizzazione delle foto nelle pagine front-end.
    Mi spiego meglio, ho pensato di far inserire liberamente le immagini nella categoria scelta, poi successivamente, in un altro step, far scegliere l'ordinamento delle foto.
    Per la scelta dell'ordine credo che sia necessario utilizzare ASP + javascript in modo da facilitare l'admin nella scelta e soprattutto nella verifica delle posizioni libere. Avevo pensato ad una tabella con form e quindi l'invio al database dell'ordinamento.
    Qualche consiglio?
    Vi ringrazio,


    elisa
    L'immaginazione è l'intelligenza che si diverte

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Metti nel db un campo "posizione" mediante il quale ordinare e nell'elenco delle foto un form con un campo testo per ogni foto con la possibilità di indicare la posizione.
    Un solo bottone aggiornerà tutte le posizioni.

    Roby

  3. #3
    Utente di HTML.it L'avatar di elisa21
    Registrato dal
    May 2004
    residenza
    Lucca
    Messaggi
    246
    Originariamente inviato da Roby_72
    Metti nel db un campo "posizione" mediante il quale ordinare e nell'elenco delle foto un form con un campo testo per ogni foto con la possibilità di indicare la posizione.
    Un solo bottone aggiornerà tutte le posizioni.

    Roby
    come posso fare per le gestire le 'posizioni' già occupate?
    L'immaginazione è l'intelligenza che si diverte

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Nel campo di testo farai apparire la posizione che se vorrai cambierai per ogni foto quindi il problema non c'è.

    Roby

  5. #5
    Utente di HTML.it L'avatar di elisa21
    Registrato dal
    May 2004
    residenza
    Lucca
    Messaggi
    246
    Originariamente inviato da Roby_72
    Nel campo di testo farai apparire la posizione che se vorrai cambierai per ogni foto quindi il problema non c'è.

    Roby
    la logica è chiara, ma ho un dubbio su come evitare possibili problemi, per es:

    foto A posizione 1
    foto B posizione 2
    foto C posizione 3
    foto D posizione 4

    creo il form con il relativo campo testo, come mi hai suggerito, dove appunto stampo la posizione della foto precedentemente inserita. Pensavo, in fase di inserimento nel db dellle immagini, di associare la prima posizione libera alla foto che sto inserendo, ovvero inserisco la prima foto avrà la posizione 1 e così via.
    Accedo alla parte relativa alla modfica delle foto, quindi avrò l'elenco delle foto con il campo testo e relativa posizione, mettiamo il caso che voglia spostare la foto A dalla posizione 1 e metterla alla posizione 2, come posso far sì che la foto B che si trova originariamente nella posizione 2 si scambi di posto con la foto A posizione 1 in automatico?
    grazie dell'aiuto,
    elisa
    L'immaginazione è l'intelligenza che si diverte

  6. #6
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    idimage= id dell'immagine che vuoi spostare
    posini = posizione iniziale di quella che vuoi spostare
    posfinal = posizione dove la vuoi mettere

    (ipotizzando che "posizione" sia numerico e che non sia chiave nella tua tabella e possa avere duplicati)
    devi prevedere due casi:

    caso 1: posini < posfinal
    devi far scalare di una posizione in meno tutte le posizioni comprese tra la spostata e quella in cui vai a mettere la spostata

    se A diventa 2, 2 deve diventare 1
    se A diventa 3, 2 e 3 diventano 1 e 2
    se A diventa 4, 2-3 e 4 diventano 1-2 e 3
    se B diventa 4, 3 e 4 diventano 2 e 3

    UPDATE tabella SET posizione = posizione -1 WHERE posizione > posini AND posizione<= posfinal
    e poi
    UPDATE tabella set posizione = posfinale WHERE ID = idimage


    caso 2: posini > posfinal
    sposti da posiz alta a posiz bassa quindi devi scalare di uno in più quelli compresi tra le due posizioni

    se C diventa 1, 1 e 2 diventano 2 e 3
    se C diventa 2, 2 diventa 3
    se D diventa 1, 1-2 e 3 diventano 2-3 e 4


    UPDATE tabella SET posizione = posizione +1 WHERE posizione < posini AND posizione>= posfinal
    e poi
    UPDATE tabella set posizione = posfinale WHERE ID = idimage
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  7. #7
    Utente di HTML.it L'avatar di elisa21
    Registrato dal
    May 2004
    residenza
    Lucca
    Messaggi
    246
    Originariamente inviato da supermac
    idimage= id dell'immagine che vuoi spostare
    posini = posizione iniziale di quella che vuoi spostare
    posfinal = posizione dove la vuoi mettere

    (ipotizzando che "posizione" sia numerico e che non sia chiave nella tua tabella e possa avere duplicati)
    devi prevedere due casi:

    caso 1: posini < posfinal
    devi far scalare di una posizione in meno tutte le posizioni comprese tra la spostata e quella in cui vai a mettere la spostata

    se A diventa 2, 2 deve diventare 1
    se A diventa 3, 2 e 3 diventano 1 e 2
    se A diventa 4, 2-3 e 4 diventano 1-2 e 3
    se B diventa 4, 3 e 4 diventano 2 e 3

    UPDATE tabella SET posizione = posizione -1 WHERE posizione > posini AND posizione<= posfinal
    e poi
    UPDATE tabella set posizione = posfinale WHERE ID = idimage


    caso 2: posini > posfinal
    sposti da posiz alta a posiz bassa quindi devi scalare di uno in più quelli compresi tra le due posizioni

    se C diventa 1, 1 e 2 diventano 2 e 3
    se C diventa 2, 2 diventa 3
    se D diventa 1, 1-2 e 3 diventano 2-3 e 4


    UPDATE tabella SET posizione = posizione +1 WHERE posizione < posini AND posizione>= posfinal
    e poi
    UPDATE tabella set posizione = posfinale WHERE ID = idimage
    la posizione non può avere duplicati, ovvero 2 immagini non possono avere la posizione identica, es. foto A posizione 3 e foto B posizione 3
    intendevi questo?

    il tutto sempre utilizzando un campo testo dove far mettere liberamente la posizione dall'admin? In questo modo l'admin deve solo modificare il campo testo dell'immagine che vuole spostare giusto?
    L'immaginazione è l'intelligenza che si diverte

  8. #8
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    no, usa un campo numerico ma lascia che possa avere duplicati (nella struttura della tabella solo, è chiaro che poi non ci saranno duplicati).
    Il permettere i duplicati ti permette di shiftare le posizioni e poi di aggiornare il record dell'immagine spostata, altrimenti dovresti fare un'operaizone ulteriore di eliminazione del record (o di update a posizione 0 o un altro numero irraggiungibile) prima delle altre due.

    Nella pagina poi metti un textfield dove l'admin indicherà in che posizione spostare l'immagine, oppure meglio ancora una select con le posizioni da 1 a X (con X= numero totale delle immagini nella pagina)
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  9. #9
    Utente di HTML.it L'avatar di elisa21
    Registrato dal
    May 2004
    residenza
    Lucca
    Messaggi
    246
    Originariamente inviato da supermac
    no, usa un campo numerico ma lascia che possa avere duplicati (nella struttura della tabella solo, è chiaro che poi non ci saranno duplicati).
    Il permettere i duplicati ti permette di shiftare le posizioni e poi di aggiornare il record dell'immagine spostata, altrimenti dovresti fare un'operaizone ulteriore di eliminazione del record (o di update a posizione 0 o un altro numero irraggiungibile) prima delle altre due.

    Nella pagina poi metti un textfield dove l'admin indicherà in che posizione spostare l'immagine, oppure meglio ancora una select con le posizioni da 1 a X (con X= numero totale delle immagini nella pagina)
    allora avrei impostato così:
    prima del form ho recuperato il rank massimo con questa query

    codice:
    ' Query per estrarre l'ordine
    		Set objRS = Server.CreateObject("ADODB.Recordset")
    		strSQL= "SELECT MAX (gl_rank) AS rank FROM " &strDbTable& "galleria_lightbox WHERE gl_id_cat = "&catID&";"
    		objRS.Open strSQL, DFCon, 1, 1
    		If Not objRS.Eof then
    			iOrdine = objRS("gl_rank")
    			iOrdine = iOrdine 
    		Else
    			iOrdine = 1	
    		End If
    		PuliziaRS(objRS)	
    		maxPosition = iOrdine 'ordine massimo
    il menu a tendina lo creo così

    codice:
                        <select name="posizione_<%=objRSFoto("id_foto")%>" id="posizione_<%=objRSFoto("id_foto")%>" title="seleziona la posizione">
                      <%
    					for cnt = 1 to maxPosition		
    		%>
                      <option value="<%=cnt%>"<% if objRSFoto("gl_rank") = cnt then %> selected="selected"<% end if %>><%=cnt%></option>
                      <%
    					next
    		%>
                    </select>
    e fin qui ci sono, adesso devo passare i dati alla query per aggiornare il tutto giusto?
    potresti aiutarmi con qualche spunto?
    ti ringrazio
    elisa
    L'immaginazione è l'intelligenza che si diverte

  10. #10
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    con ajax potresti fare tutto nella stesa pagina senza ricaricarla ma se vuoi usare il metodo classico (brut o champenoise ) basta che sull'onchange della select gli dici di andare su una pagina asp passandogli come parametri l'ID dell'immagine, la posizione corrente (potresti anche farne a meno ma così poi sei obbligata ad andarti a leggere nel db in che posizione è attualmente l'immagine quando arrivi nella pagina target) e la posizione che vuoi che prenda.
    La pagina eseguirà le query di cui sopra e poi farai un redirect sulla pagina corrente

    devi usare un po' di JS
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

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.