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

    Gestore recordset in Flash

    Ho una serie di bottoni a forma di regioni che compongono la mappa dell'italia.

    Quando clicco su una regione, in un riquadro in alto a destra (un campo testo?), vengono mostrati tutti i punti vendita presenti in quella regione.
    Ogni nome sarà poi un link ad una pagina web.


    Al caricamento il filmato deve richiamare una pagina ASP e farsi restituire un recordset con le informazioni, da una query SQL (numero di record risultanti non definito).


    Come faccio a crearmi una matrice in FLASH corrispondente al recordset ricavato da ASP?


    Ho provato a generare un file XML dal recordset (con rs.save di ASP) e ad aprirlo da FLASH; ma non so poi come gestirmelo.

    Avete altri metodi in mente?

    Mi date una mano?

    Grazie

  2. #2

    Re: Gestore recordset in Flash

    Originariamente inviato da pictor
    Ho una serie di bottoni a forma di regioni che compongono la mappa dell'italia.

    Quando clicco su una regione, in un riquadro in alto a destra (un campo testo?), vengono mostrati tutti i punti vendita presenti in quella regione.
    Ogni nome sarà poi un link ad una pagina web.


    Al caricamento il filmato deve richiamare una pagina ASP e farsi restituire un recordset con le informazioni, da una query SQL (numero di record risultanti non definito).


    Come faccio a crearmi una matrice in FLASH corrispondente al recordset ricavato da ASP?


    Ho provato a generare un file XML dal recordset (con rs.save di ASP) e ad aprirlo da FLASH; ma non so poi come gestirmelo.

    Avete altri metodi in mente?

    Mi date una mano?

    Grazie
    in pratica devi solo scrivere i nomi dei rivenditori x regione?

    quindi da flash quando clicchi su di una regione si richiama una query in asp a cui gli invii la var della regione e la query fa la select a seconda della var ricevuta ...quindi avrai una sola pag asp (almeno io cosi ho fatto in un sito questo nn vuol dire che sia l'unica soluzione)

    quindi a questo punto la query ti restituyisce una serie di record ...nome indirizzo tel link tec

    questi dati restituiti da asp o li formatti in xml e li leggi in flash oppure con il solito output

    var1=bla&var2=bla&....&varN=bla&

    prendi questi dati , ad es se formattati in questo modo, con loadVars()

    magari li metti in qualche array x gestirli meglio
    poi dipende cosa vuoi visualizzare se ad es solo il nome

    ti crei un clip con dentro una casella x il nome e ti duplichi questo clip (o meglio ancora lo attacchi sullo stage dalla libreria) quante volte ti serve cioè quanti sono i record trovati

    il problema sarà il numero di questi .... forse ti conviene mettere tutto in uno scroll e quindi nn avrai problemidi spazio
    oppure devi fare un sistema di paginazione

    questo in grandi linee quello che farei io....
    un es di ciò
    www.casciellobernardosrl.it
    sezione rivenditori
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  3. #3
    E' esattamente quello che volevo fare

    I miei dubbi sono:
    [list=1][*]E' possibile eseguire una query in modo asincrono? Quindi passare solo il nome della regione; oppure devo ricavarmi tutto il recordset, passarlo a Flash e poi filtrarlo per regione? E come si fa? (un link sarebbe gradito )[*] Come scambio e gestisco le informazioni formattate in XML?
    A questo punto c'ero arrivato ma poi ho un testo XML e non riesco a capire come prendere i valori dei singoli nodi.[/list=1]

    Questo è un esempio di xml restituito dalla mia pagina ASP. E' in Schema piuttosto che in DTD.
    Con questo formato pare che il metodo 'childNode' della classe per l'oggetto XML non funzioni.

    codice:
    <xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
    	<s:Schema id="RowsetSchema">
    		<s:ElementType name="row" content="eltOnly" rs:CommandTimeout="30">
    			<s:AttributeType name="IdProdotto" rs:number="1">
    				<s:datatype dt:type="int" dt:maxLength="4" rs:precision="10" rs:fixedlength="true" rs:maybenull="false"/>
    			</s:AttributeType>
    			<s:AttributeType name="Nome" rs:number="2" rs:writeunknown="true">
    				<s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="50" rs:maybenull="false"/>
    			</s:AttributeType>
    			<s:AttributeType name="Prezzo" rs:number="3" rs:writeunknown="true">
    				<s:datatype dt:type="float" dt:maxLength="8" rs:precision="15" rs:fixedlength="true" rs:maybenull="false"/>
    			</s:AttributeType>
    			<s:extends type="rs:rowbase"/>
    		</s:ElementType>
    	</s:Schema>
    	<rs:data>
    		<z:row IdProdotto="1" Nome="Prodotto di prova" Prezzo="230"/>
    		<z:row IdProdotto="2" Nome="12" Prezzo="312"/>
    		<z:row IdProdotto="3" Nome="Stampante laser" Prezzo="800"/>
    		<z:row IdProdotto="4" Nome="Tv Lcd 21&quot;" Prezzo="198"/>
    		<z:row IdProdotto="5" Nome="Distribututto" Prezzo="123.3"/>
    		<z:row IdProdotto="6" Nome="Masterizzatore di schiacciatine" Prezzo="599.99000000000001"/>
    		<z:row IdProdotto="7" Nome="Grimaldelli per distributori" Prezzo="34"/>
    		<z:row IdProdotto="8" Nome="test" Prezzo="123"/>
    		<z:row IdProdotto="9" Nome="tast" Prezzo="35234"/>
    		<z:row IdProdotto="10" Nome="asd" Prezzo="123"/>
    		<z:row IdProdotto="11" Nome="prov" Prezzo="123"/>
    		<z:row IdProdotto="12" Nome="ba" Prezzo="42"/>
    	</rs:data>
    </xml>
    [list=1][*]Come faccio a gestirmi i dati XML in questo formato? [*]Come posso ricostruire il recordset dentro un array? Oppure come mi converrebbe gestirlo?[/list=1]
    Fondamentalmente sono questi i miei problemi.

    (personalmente scarterei il metodo di caricamento tramite loadVars. Vorrei farlo in XML)

    Mi sapete dare un'ulteriore aiuto? E' difficile arrancare i primi passi in ActionScript senza un supporto

    Grazie ancora

  4. #4
    >E' possibile eseguire una query in modo asincrono? Quindi passare solo il nome della regione; oppure devo ricavarmi tutto il recordset, passarlo a Flash e poi filtrarlo per regione? E come si fa? (un link sarebbe gradito

    cioè cliccando sulla regione richiami una pag asp e gli invii in contemporanea la var che gli serve x la select che farai dentro la pag asp
    quindi questa query ti restituisce un record o una serie di record oppure nessun record a seconda se trova o meno riv di quella regione

    ( i dati li carichi quando ci passi la var della regione quindi nn prima)

    i dati li vuoi farmattare in xml ok ma ti conviene dare uno sguardo qua
    http://flash.html.it/guide/leggi/118/guida-flash-e-xml/

    prendi i valori dei record che ti servono e li metti negli array
    cioè ti crei tanti array quante sono le info da conservare
    quindi un array x i nomi dei prodotti un array x i prezzi.... e cosi via

    nel file xml formattato da asp ti converrebbe metterci, come dalla guida, un nodo che ti da il num totate dei record trovati, in modo tale da poter gestire la paginazione se ne sono tanti comè spiegato sempre nell'articolo
    (se vuoi fare il sistema di paginazione altrimenti li metti in uno scroll , sistema senza paginazione)

    per caricare i dati da xml nella guida è spiegato bene anche il modo di caricarli in degli array con il metodo push...
    una volta che avrai i dati negli array li potrai gestire come meglio credi
    ti crei un clip con dento il nome del rivenditore e tutto quello che vuoi e lo duplichi quante volte ti serve a seconda dei record trovati


    ps dai un occhio a quel link che cè tutto quello che ti serve
    poi se hai problemi posta che si risolvono
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  5. #5
    in pratica io ho
    l'italia con tutti i pls al clic sul pls richiamo un file esterno e setto una var a levello0

    nel file esterno che richiamo
    //richiamo in pratica la pag asp creaXmlMappa che con una select mi filtra i riv di quella
    //regione passata con la var _level0.regione
    filexml = "creaXmlMappa.asp?regione="+_level0.regione;
    ApriXML();
    function ApriXML () {
    _root.loading = "Connecting ...";
    mioxml = new XML();
    myarray = new Array();
    mioxml.load(filexml + "&rnd=" + random(999999));
    mioxml.onLoad = ElaboraXML;
    function ElaboraXML (success) {
    if (mioxml.loaded) {
    myarray = mioxml.childNodes;
    Dati();
    CreaTabelle();
    delete myarray;
    delete mioxml;

    }else{
    _root.loading = "Rivenditori non presenti";
    }
    };
    };

    e le funzioni Dati();CreaTabelle();...sono + o - le stesse descritte in quel link
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  6. #6
    Originariamente inviato da crescenzo
    //regione passata con la var _level0.regione
    filexml = "creaXmlMappa.asp?regione="+_level0.regione;
    ApriXML();
    function ApriXML () {
    _root.loading = "Connecting ...";
    mioxml = new XML();
    myarray = new Array();
    mioxml.load(filexml + "&rnd=" + random(999999));
    mioxml.onLoad = ElaboraXML;
    function ElaboraXML (success) {
    if (mioxml.loaded) {
    myarray = mioxml.childNodes;
    Il mio problema è che quell'articolo parla di XML in formato DTD <nodo>valore</nodo>, mentre io dalla query lo ottengo in formato <nodo attributo="valore" />

    Oltre al primo nodo non riesco a proseguire!

    Se vedi l'esempio postato sopra vedrai che è strutturato diversamente l'XML.

    Come faccio a leggere i dati strutturati con quello style?

  7. #7
    Originariamente inviato da pictor
    Il mio problema è che quell'articolo parla di XML in formato DTD <nodo>valore</nodo>, mentre io dalla query lo ottengo in formato <nodo attributo="valore" />

    Oltre al primo nodo non riesco a proseguire!

    Se vedi l'esempio postato sopra vedrai che è strutturato diversamente l'XML.

    Come faccio a leggere i dati strutturati con quello style?
    ma volendo potresti ttranquillamente formattare l'output della tua pag asp con quel formato.... e quindi prendere quelle funzioni e modificarle...

    xchè la query la fai tu o ti esce da un cms? e quindi difficile da cambiare (forse)?

    poi cmq si può leggere quell'xml ora nn ho molto tempo x provare a parsarlo in flash ma non è una cosa impossibile... oppure apri un'altro 3d x poter parsare quell'xml vedrai che qualcuno che ha un attimo di + lo trovi..



    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  8. #8
    Dopo innumerevoli sforzi sono riuscito a generare un XML corretto (semplice, con soli elementi, niente attributi o intestazioni... in "bad format" insomma).

    I dati ricavati li ho spostati in un array di array (matrice).

    Scrivo il codice giusto a carattere informativo, anche se farà schifissimo (è la mia prima esperienza da ActionScripter ).
    codice:
    filexml = "asp2xml.asp";
    
    ApriXML();
    function ApriXML () {
    
    	xml_root = new Array();
    	element = new Array();
    	rs = new Array();
    	myarray = new Array();
    	
    	_root.loading = "Connecting ..."
    	  
    	mioxml = new XML();
    	mioxml.ignoreWhite = true;
    	mioxml.load(filexml + "?regione=TOSCANA" +"&rnd=" + random(999999)); //  Il random è, credo, per non far caricare da cache
    	mioxml.onLoad = ElaboraXML;
     
    	function ElaboraXML (success) 
    	{
    		if (mioxml.loaded) 
    		{
    			// Mi ricavo l'elemento root (il recordset)
    			xml_root = mioxml.firstChild;
    			// Rivaca l'elemento Record (l'array degli attributi)
    			rs = xml_root.childNodes;
    			
    			for (i=0;i<rs.length;i++)
    			{
    				element = rs[i].childNodes;
    				
    				// resetta tempArray
    				tempArray = new Array();
    				
    				// Scorro gli elementi/attributi
    				for (j=0;j<element.length;j++)
    				{
    					// Mi ricostruisco il record su un array
    					tempArray.push(element[j].firstChild);
    				}
    				
    				myarray[i] = tempArray;
    			}
    			
    
    			// Rileggi Array	  
    			for (i=0;i<myarray.length;i++)
    			{
    				// Scorro gli elementi/attributi
    				for (j=0;j<myarray[i].length;j++)
    				{
    					trace("Valore: " + myarray[i][j]);
    				}
    			}
    
    		} 
    		else 
    		{
    			_root.loading = "Rivenditori non presenti";
    		}
    		
    	}		   
    }
    Come vedete riesco a caricare e stampare la matrice.

    Ora ho bisogno di:
    [list=1][*] Creare un campo di testo scorrevole da riempire con codice HTML e i dati della matrice.[*] Permettere ai bottoni/regioni di selezionare il nome della regione e di usarlo per le funzioni scritte sopra caricando i dati giusti.[/list=1]

    Io ancora non lo so fare...
    Mi date una mano?

    PS - La mappa dell'italia divisa in regioni che sto utilizzando è questa qua

    Vi ringrazio molto

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.