Listato da file car.mdb e slideshow multipli

di il
4 risposte

Listato da file car.mdb e slideshow multipli

Premetto che sono un neofita e che sto cercando di creare una pagina asp che mi dia un listato delle auto presenti nel database mdb e recuperare immagini dalla cartella di mdb-database visualizzandole in vari slideshow.
Il problema è che le immagini vengono cambiate solo nell'ultimo slideshow.
Sto sclerando, potrete aiutarmi? ho creato il seguente codice :
<%
if rs.EOF then
response.write "Nessun annuncio inserito.<BR><BR>"
else
rs.MoveFirst
do while not rs.eof
Response.write("<div><div style='float:left;'><div style='font-size:28px;color:Orange;'>" & rs.Fields("Marca_Modello") & "</div><hr><div>Immatricolazione : <b>" & rs.Fields("Anno_Imm") & "</B>")
Response.write("<BR>Km percorsi : <b>" & rs.Fields("Chilometraggio") & "</b><BR>Carburante : <b>" & Rs.Fields("Carburante") & "</b>")
Response.write("<BR>Classe Emissioni : <b><i>" & Rs.Fields("Classe_Emissioni") & "</i></b><BR>Potenza : <b><i>" & rs.Fields("Potenza") & "&nbsp;</i></b><BR>")
Response.write("Tipo di cambio: <i><b>" & Rs.Fields("Cambio") & "</b></i><BR>")
Response.write("Colore Interni: <i><b>" & Rs.Fields("Colore_Interni") & "</b></i></div></Div>")
Response.write("<div style='background-color:#FFCC33; padding:30px; margin:3px; border: solid 1px black; border-radius:15px; webkit-border-radius:15px; moz-border-radius:15px; float:right; margin-top: 25px'><div style='font-size:36px;color:RED;'>")
Response.write("<b>&nbsp;&nbsp;&euro;&nbsp;&nbsp;&nbsp;" & Rs.Fields("Prezzo") & "</b><BR></DIV><p align='right'>+ p.p.</P></div><div style='clear:both;'></DIV></DIV>")
Response.Write("<HR>")
Response.write("<STYLE type='text/css'> ." & Rs.Fields("Nome") & " {display: none} img {vertical-align: middle;} ." & Rs.Fields("Nome") & "-slideshow-container { max-width: 800px; position: relative; margin: auto; } ")
Response.write("." & Rs.Fields("Nome") & "-prev, ." & Rs.Fields("Nome") & "-next { cursor: pointer; position: absolute; top: 50%; width: auto; padding: 16px; margin-top: -22px; color: white; font-weight: bold; font-size: 18px; transition: 0.6s ease; border-radius: 0 3px 3px 0; user-select: none; } ")
Response.write("." & Rs.Fields("Nome") & "-next { right: 0; border-radius: 3px 0 0 3px; } ")
Response.write("." & Rs.Fields("Nome") & "-prev:hover, ." & Rs.Fields("Nome") & "-next:hover { background-color: rgba(0,0,0,0.; } ")
Response.write(".text { color: #f2f2f2; font-size: 15px; padding: 8px 12px; position: absolute; bottom: 8px; width: 100%; text-align: center; } ")
Response.write(".numbertext { color: #f2f2f2; font-size: 12px; padding: 8px 12px; position: absolute; top: 0; } ")
Response.write("." & Rs.Fields("Nome") & "-dot { cursor: pointer; height: 15px; width: 15px; margin: 0 2px; background-color: #bbb; border-radius: 50%; display: inline-block; transition: background-color 0.6s ease; } ")
Response.write("." & Rs.Fields("Nome") & "-active, ." & Rs.Fields("Nome") & "-dot:hover { background-color: #717171; } ")
Response.write("." & Rs.Fields("Nome") & "-fade { -webkit-animation-name: " & Rs.Fields("Nome") & "-fade; -webkit-animation-duration: 1.5s; animation-name: " & Rs.Fields("Nome") & "-fade; animation-duration: 1.5s; } ")
Response.write("@-webkit-keyframes " & Rs.Fields("Nome") & "-fade { from {opacity: .4} to {opacity: 1} } ")
Response.write("@keyframes " & Rs.Fields("Nome") & "-fade { from {opacity: .4} to {opacity: 1} } ")
response.write("@media only screen and (max-width: 300px) { ." & Rs.Fields("Nome") & "-prev, ." & Rs.Fields("Nome") & "-next,.text {font-size: 11px} } ")
Response.write("</STYLE>")
Response.write("<div class='" & Rs.Fields("Nome") & "-slideshow-container'> <div class='" & Rs.Fields("Nome") & " " & Rs.Fields("Nome") & "-fade'><div class='numbertext'>1 / 4</div> ")
Response.write("<A Href='/mdb-database/" & Rs.Fields("Foto1") & "' target='" & Rs.Fields("Nome") & "'><Img Src='/mdb-database/" & Rs.Fields("Foto1") & "' width='800' height='600' alt='Foto principale'></A>")
Response.write("<div class='text'>" & Rs.Fields("Marca_Modello") & " - Foto Principale</div></div>")
Response.write("<div class='" & Rs.Fields("Nome") & " " & Rs.Fields("Nome") & "-fade'><div class='numbertext'>2 / 4</div> ")
Response.Write("<A Href='/mdb-database/" & Rs.Fields("Foto2") & "' target='" & Rs.Fields("Nome") & "'><Img Src='/mdb-database/" & Rs.Fields("Foto2") & "' width='800' height='600' alt='Foto vista laterale del veicolo'></A>")
Response.write("<div class='text'>" & Rs.Fields("Marca_Modello") & " - Vista laterale del veicolo</div></div>")
Response.write("<div class='" & Rs.Fields("Nome") & " " & Rs.Fields("Nome") & "-fade'><div class='numbertext'>3 / 4</div>")
Response.Write("<A Href='/mdb-database/" & Rs.Fields("Foto3") & "' target='" & Rs.Fields("Nome") & "'><Img Src='/mdb-database/" & Rs.Fields("Foto3") & "' width='800' height='600' alt='Foto vista del retro del veicolo'></a>")
Response.write("<div class='text'>" & Rs.Fields("Marca_Modello") & " - Vista del retro veicolo</div></div>")
Response.write("<div class='" & Rs.Fields("Nome") & " " & Rs.Fields("Nome") & "-fade'><div class='numbertext'>4 / 4</div> ")
Response.Write("<A Href='/mdb-database/" & Rs.Fields("Foto4") & "' target='" & Rs.Fields("Nome") & "'><Img Src='/mdb-database/" & Rs.Fields("Foto4") & "' width='800' height='600' alt='Foto principale'></A>")
Response.write("<div class='text'>" & Rs.Fields("Marca_Modello") & " - Vista degli interni veicolo</div></div>")
Response.write("<a class='" & Rs.Fields("Nome") & "-prev' onclick='" & Rs.Fields("Nome") & "plusSlides(-1)'>&#10094;</a> <a class='" & Rs.Fields("Nome") & "-next' onclick='" & Rs.Fields("Nome") & "plusSlides(1)'>&#10095;</a></Div>")
Response.write("<br> <div style='text-align:center'> <span class='" & Rs.Fields("Nome") & "dot' onclick='" & Rs.Fields("Nome") & "currentSlide(1)'></span> <span class='" & Rs.Fields("Nome") & "dot' onclick='" & Rs.Fields("Nome") & "currentSlide(2)'></span> <span class='" & Rs.Fields("Nome") & "dot' onclick='" & Rs.Fields("Nome") & "currentSlide(3)'></span> <span class='" & Rs.Fields("Nome") & "dot' onclick='" & Rs.Fields("Nome") & "currentSlide(4)'></span></div> ")
Response.write("<script> var slideIndex = 1; showSlides(slideIndex); function " & Rs.Fields("Nome") & "plusSlides(n) { showSlides(slideIndex += n); } ")
Response.write("function " & Rs.Fields("Nome") & "currentSlide(n) { showSlides(slideIndex = n); } ")
Response.write("function showSlides(n) { var i; var slides = document.getElementsByClassName('" & Rs.Fields("Nome") & "'); var dots = document.getElementsByClassName('" & Rs.Fields("Nome") & "dot'); ")
response.write("if (n > slides.length) {slideIndex = 1} if (n < 1) {slideIndex = slides.length} for (i = 0; i < slides.length; i++) { slides.style.display = 'none'; } ")
Response.write("for (i = 0; i < dots.length; i++) { dots.className = dots.className.replace('-active', ''); } ")
Response.write("slides[slideIndex-1].style.display = 'block'; dots[slideIndex-1].className += '-active'; } </script>")
Response.write("<div>" & Rs.Fields("Descrizione") & "</Div><BR><HR><BR>")
rs.MoveNext
loop
end if
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
%>

4 Risposte

  • Re: Listato da file car.mdb e slideshow multipli

    mvattak ha scritto:


    Premetto che sono un neofita e che sto cercando di creare una pagina asp che mi dia un listato delle auto presenti nel database mdb e recuperare immagini dalla cartella di mdb-database visualizzandole in vari slideshow. [...]
    Scritto in questo modo, il codice a me pare incomprensibile: già ASP contribuisce alla pratica dello "spaghetti code", ma così l'effetto è decuplicato a svantaggio della chiarezza del codice che risulta illeggibile.

    Riscrivi la parte usando correttamente i tag di apertura/chiusura ASP lato server mettendo all'interno l'espressione da cui recuperare il valore da stampare (es. <%= espressione %>), mettendo tutto il markup HTML all'esterno.

    Ecco un esempio veloce per mostrare quello che intendo:
    
    <% Do While Not rs.eof %>
    <div>
      <div style='float:left;'>
        <div style='font-size:28px;color:Orange'><% = rs.Fields("Marca_Modello") %></div>
        <hr>
        <div>Immatricolazione: <b><% =rs.Fields("Anno_Imm") %></b>
        ...
      </div>
    </div>
    <% Loop %>
    
    Oltre a questo, quando riporti il codice sul forum, mettilo nell'apposito tag [ CODE ] in modo che sia formattato.

    Come altro consiglio, vedo molti stili definiti "in linea" nel tuo codice: crea un foglio di stile CSS e trasforma quegli stili in classi, così da semplificare enormemente il markup HTML e renderlo ancora più leggibile.

    Nel tuo listato è presente anche codice JavaScript: a maggior ragione questo andrebbe lasciato fuori da istruzioni tipo Response.Write(), altrimenti la commistione tra le due sintassi complica l'operazione di codifica in modo esponenziale.

    Fatte queste migliorie, se la problematica non sarà già saltata all'occhio, sarà probabilmente più facile individuarla.

    Ciao!
  • Re: Listato da file car.mdb e slideshow multipli

    Chiedo, vista l'evidente mia inesperienza, la possibilità di inserimento di più sideshow all'interno di una stessa pagina. Infatti sarebbe necessario, recuperare informazioni del percorso delle foto, e contemporaneamente dati dal database. Il tutto inserito in un ciclo for nel quale stampa i dati del database e uno sideshow per ogni recordset. Perché pur inserendo più tag div con diverso nome, vengono modificate cliccando next e prev le immagini solo nell'ultimo sideshow visualizzato. Se possibile chiedo la possibilità di vedere qualche esempio di sideshow da inserire in un ciclo for... Ringrazio anticipatamente.
  • Re: Listato da file car.mdb e slideshow multipli

    X @mvattak
    hai pubblicato il thread nell'area dedicata ad asp.net. L'ho spostato nella sezione corretta: asp
    ASP e ASP.NET non hanno quasi nulla in comune.
  • Re: Listato da file car.mdb e slideshow multipli

    Cross posting con sito esterno.
    Leggi il regolamento del forum https://www.iprogrammatori.it/forum-programmazione/regolamento.php

    Chiudo il thread
Devi accedere o registrarti per scrivere nel forum
4 risposte