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

    loop con dati prelevati da database

    Premetto che non ho molta dimestichezza con jscript. Ecco il mio problema.
    In un database (mdb access) ho un elenco di negozi e per ogni negozio ho alcune informazioni.
    Ho una pagina in aso dove apro il database e all'interno ho uno script java che mi crea una mappa con la posizione dei negozzi sul territorio.
    Lo script funziona se metto un elenco ( a mano) dei negozi
    Io vorrei fare in modo che l'elenco sia implementato dal database (set di record).

    Allo stato attuale viene preso il primo negozio, come faccio a creare una situazione di tipo

    do while rs.EOF
    (record database)
    rs.movenex
    loop

    ??????

    Posto il codice funzionante (ma mi da solo il priomo record del database:


    <%
    Set rs=application("elenco").execute("SELECT [id], [foto], [nome], [indirizzo], [localita], [nazione], [urlhomepage], [latitudine], [longitudine] FROM [database] ")
    %>


    <script type="text/javascript">
    var mapDiv,
    map,
    infobox;
    jQuery(document).ready(function($) {
    mapDiv = $("#directory-main-bar");
    mapDiv.height(500).gmap3({
    map: {
    options: {
    "draggable": true
    ,"mapTypeControl": true
    ,"mapTypeId": google.maps.MapTypeId.ROADMAP
    ,"scrollwheel": false
    ,"panControl": true
    ,"rotateControl": false
    ,"scaleControl": true
    ,"streetViewControl": true
    ,"zoomControl": true
    }
    },
    marker: {
    values: [
    // inizio riga
    var x = -1
    {
    latLng: [<%=rs(7)%>,<%=rs(8)%>],
    options: {
    icon: "directory/kord.png",
    shadow: "directory/icon-shadow.png",
    },
    data: '<div class="marker-holder"><div class="marker-content with-image">[img]/cont_photo/foto/gruppi/<%=rs(1)%>.jpg[/img]<div class="map-item-info"><div class="title">'+"<%=rs(2)%>"+'</div><div class="address">'+"<%=rs(3)%>, <%=rs(4)%>, <%=rs(5)%>"+'</div>VIEW MORE</div><div class="arrow"></div><div class="close"></div></div></div></div>'
    }
    // fine riga

    ],
    options:{
    draggable: false
    },
    cluster:{
    radius: 20,
    // This style will be used for clusters with more than 0 markers
    0: {
    content: "<div class='cluster cluster-1'>CLUSTER_COUNT</div>",
    width: 90,
    height: 80
    },
    // This style will be used for clusters with more than 20 markers
    20: {
    content: "<div class='cluster cluster-2'>CLUSTER_COUNT</div>",
    width: 90,
    height: 80
    },
    // This style will be used for clusters with more than 50 markers
    50: {
    content: "<div class='cluster cluster-3'>CLUSTER_COUNT</div>",
    width: 90,
    height: 80
    },
    events: {
    click: function(cluster) {
    map.panTo(cluster.main.getPosition());
    map.setZoom(map.getZoom() + 2);
    }
    }
    },
    events: {
    click: function(marker, event, context){
    map.panTo(marker.getPosition());

    infobox.setContent(context.data);
    infobox.open(map,marker);

    // if map is small
    var iWidth = 260;
    var iHeight = 300;
    if((mapDiv.width() / 2) < iWidth ){
    var offsetX = iWidth - (mapDiv.width() / 2);
    map.panBy(offsetX,0);
    }
    if((mapDiv.height() / 2) < iHeight ){
    var offsetY = -(iHeight - (mapDiv.height() / 2));
    map.panBy(0,offsetY);
    }

    }
    }
    }
    },"autofit");

    map = mapDiv.gmap3("get");
    infobox = new InfoBox({
    pixelOffset: new google.maps.Size(-50, -65),
    closeBoxURL: '',
    enableEventPropagation: true
    });
    mapDiv.delegate('.infoBox .close','click',function () {
    infobox.close();
    });

    if(isTouchDevice()){
    map.setOptions({ draggable : false });
    var draggableClass = 'inactive';
    var draggableTitle = 'Activate map';
    var draggableButton = $('<div class="draggable-toggle-button '+draggableClass+'">'+draggableTitle+'</div>').appendTo(mapDiv);
    draggableButton.click(function () {
    if($(this).hasClass('active')){
    $(this).removeClass('active').addClass('inactive') .text('Activate map');
    map.setOptions({ draggable : false });
    } else {
    $(this).removeClass('inactive').addClass('active') .text('Deactivate map');
    map.setOptions({ draggable : true });
    }
    });
    }

    });
    </script>

    grazie a chi mi può aiutare...
    Danio Felloni
    web applications development

  2. #2

    oops

    ri posto il codice javascript...
    questo è quello giusto che funziona...

    <script type="text/javascript">
    var mapDiv,
    map,
    infobox;
    jQuery(document).ready(function($) {
    mapDiv = $("#directory-main-bar");
    mapDiv.height(500).gmap3({
    map: {
    options: {
    "draggable": true
    ,"mapTypeControl": true
    ,"mapTypeId": google.maps.MapTypeId.ROADMAP
    ,"scrollwheel": false
    ,"panControl": true
    ,"rotateControl": false
    ,"scaleControl": true
    ,"streetViewControl": true
    ,"zoomControl": true
    }
    },
    marker: {
    values: [
    // inizio riga

    {
    latLng: [<%=rs(7)%>,<%=rs(8)%>],
    options: {
    icon: "directory/kord.png",
    shadow: "directory/icon-shadow.png",
    },
    data: '<div class="marker-holder"><div class="marker-content with-image">[img]/cont_photo/foto/gruppi/<%=rs(1)%>.jpg[/img]<div class="map-item-info"><div class="title">'+"<%=rs(2)%>"+'</div><div class="address">'+"<%=rs(3)%>, <%=rs(4)%>, <%=rs(5)%>"+'</div>VIEW MORE</div><div class="arrow"></div><div class="close"></div></div></div></div>'
    }

    // fine riga
    // la riga finale non deve avere la virgola

    ],
    options:{
    draggable: false
    },
    cluster:{
    radius: 20,
    // This style will be used for clusters with more than 0 markers
    0: {
    content: "<div class='cluster cluster-1'>CLUSTER_COUNT</div>",
    width: 90,
    height: 80
    },
    // This style will be used for clusters with more than 20 markers
    20: {
    content: "<div class='cluster cluster-2'>CLUSTER_COUNT</div>",
    width: 90,
    height: 80
    },
    // This style will be used for clusters with more than 50 markers
    50: {
    content: "<div class='cluster cluster-3'>CLUSTER_COUNT</div>",
    width: 90,
    height: 80
    },
    events: {
    click: function(cluster) {
    map.panTo(cluster.main.getPosition());
    map.setZoom(map.getZoom() + 2);
    }
    }
    },
    events: {
    click: function(marker, event, context){
    map.panTo(marker.getPosition());

    infobox.setContent(context.data);
    infobox.open(map,marker);

    // if map is small
    var iWidth = 260;
    var iHeight = 300;
    if((mapDiv.width() / 2) < iWidth ){
    var offsetX = iWidth - (mapDiv.width() / 2);
    map.panBy(offsetX,0);
    }
    if((mapDiv.height() / 2) < iHeight ){
    var offsetY = -(iHeight - (mapDiv.height() / 2));
    map.panBy(0,offsetY);
    }

    }
    }
    }
    },"autofit");

    map = mapDiv.gmap3("get");
    infobox = new InfoBox({
    pixelOffset: new google.maps.Size(-50, -65),
    closeBoxURL: '',
    enableEventPropagation: true
    });
    mapDiv.delegate('.infoBox .close','click',function () {
    infobox.close();
    });

    if(isTouchDevice()){
    map.setOptions({ draggable : false });
    var draggableClass = 'inactive';
    var draggableTitle = 'Activate map';
    var draggableButton = $('<div class="draggable-toggle-button '+draggableClass+'">'+draggableTitle+'</div>').appendTo(mapDiv);
    draggableButton.click(function () {
    if($(this).hasClass('active')){
    $(this).removeClass('active').addClass('inactive') .text('Activate map');
    map.setOptions({ draggable : false });
    } else {
    $(this).removeClass('inactive').addClass('active') .text('Deactivate map');
    map.setOptions({ draggable : true });
    }
    });
    }

    });
    </script>
    Danio Felloni
    web applications development

  3. #3

    ..asp

    ho provato una cosa di questo tipo ma non funziona , desideravo sapere se è la strada giusta... è il forum giusto o mi sposto su un altro?
    grazie



    i = 0;
    do

    // inizio riga
    {
    latLng: [<%=rs(7)%>,<%=rs(8)%>],
    options: {
    icon: "directory/kord.png",
    shadow: "directory/icon-shadow.png",
    },
    data: '<div class="marker-holder"><div class="marker-content with-image">[img]/cont_photo/foto/gruppi/<%=rs(1)%>.jpg[/img]<div class="map-item-info"><div class="title">'+"<%=rs(2)%>"+'</div><div class="address">'+"<%=rs(3)%>, <%=rs(4)%>, <%=rs(5)%>"+'</div>VIEW MORE</div><div class="arrow"></div><div class="close"></div></div></div></div>'
    } // fine riga
    // la riga finale non deve avere la virgola
    i++; //aumento l’indice di 1
    }
    while(i><%=rs(1)%>);
    Danio Felloni
    web applications development

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: ..asp

    Originariamente inviato da d_felloni
    non pensavo era cosi difficile... oppure ho fatto una domanda che non merita risposta?
    se mi date qualche link almeno... provo
    Quando ci sono certe premesse (poca conoscenza di javascript) e c'è molto codice (oltretutto non racchiuso tra tag [code]) è normale.
    Comunque in questo caso ritengo che il problema sia lato server devi eseguire la query in asp (non credo tu possa usare aso ne sia la soluzione migliore in questo caso) direttamente nella pagina estrapolando tutti i negozi con quelle coordinate con un ciclo while e popolarti un array che sia così [cord1,cord2,cord3,etc...] che andrai ad inserire nella variabile latLng:<%=tua-array-asp%>,
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5

    provo

    ottima idea adesso provo
    Danio Felloni
    web applications development

  6. #6

    oops fatto ma non ripete il ciclo

    ho fatto questo test:
    <%
    Set rs=application("gruppi").execute("SELECT [id], [foto], [nome], [indirizzo], [localita], [nazione], [urlhomepage], [latitudine], [longitudine] FROM [gruppi] ")
    do while not rs.eof
    foto = rs(1)
    nome = rs(2)
    indirizzo = rs(3)
    localita = rs(4)
    nazione = rs(5)
    urlhomepage = rs(6)
    latitudine = rs(7)
    longitudine = rs(8)
    rs.movenext
    loop
    %>

    poi nello script java...


    <script type="text/javascript">
    var mapDiv,
    map,
    infobox;
    jQuery(document).ready(function($) {
    mapDiv = $("#directory-main-bar");
    mapDiv.height(500).gmap3({
    map: {
    options: {
    "draggable": true
    ,"mapTypeControl": true
    ,"mapTypeId": google.maps.MapTypeId.ROADMAP
    ,"scrollwheel": false
    ,"panControl": true
    ,"rotateControl": false
    ,"scaleControl": true
    ,"streetViewControl": true
    ,"zoomControl": true
    }
    },
    marker: {
    values: [


    // inizio riga
    {
    latLng: [<%=latitudine%>,<%=longitudine%>],
    options: {
    icon: "directory/kord.png",
    shadow: "directory/icon-shadow.png",
    },
    data: '<div class="marker-holder"><div class="marker-content with-image">[img]/cont_photo/foto/gruppi/<%=foto%>.jpg[/img]<div class="map-item-info"><div class="title">'+"<%=nome%>"+'</div><div class="address">'+"<%=indirizzo%>, <%=localita%>, <%=nazione%>"+'</div>VIEW MORE</div><div class="arrow"></div><div class="close"></div></div></div></div>'
    } // fine riga
    // la riga finale non deve avere la virgola

    .....



    nella mappa compare sempre un solo record ... il primo
    Danio Felloni
    web applications development

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Come già detto devi creati un array in asp sei non sai come si fa chiedi (link segnala ad un moderatore) lo spostamento della discussione nel forum asp
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.