Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    253

    XML motore di ricerca con combobox e nodi

    Ciao ragazzi,
    buona serata a tutti!
    Vi chiedo un aiuto!
    In pratica sto cercando di fare un motore di ricerca in xml dove i dati vengono inviati da una combobox.
    Mi sono fatta la pagina ricerca.html con le mie combo
    la pagina database.xml con il tag <root> e la parola chiave e i suoi contenuti da mostrare.
    Infine mi sono creata la pagina elabora.js, dove al momento in cui dovrei fare il ciclo while per trovare le parole ricercate, avendo tre combobox vorrei lavorare con i nodi, in giro per il web ho visto questa sintassi...

    var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
    oNde = xmlDoc.selectSelectNode("root/titolo");
    //<titolo> è la parola chiave che si trova all'interno di database.xml per identificare i contenuti
    fldCodice.value = oNde.text;

    però dopo come devo proseguire? Nel senso che devo fare il ciclo?
    Vi ringrazio tantissimo per l'aiuto.
    Un grande saluto.
    Ely

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    253
    ragazzi all'interno della pagina elabora.js, ho provato a scrivere così:

    codice:
     
    
    function Ricerca() 
    {
    var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
    xmlDoc.loadXML("database.xml");
    var oNodeList = xmlDoc.selectNodes("root/ricerca/titolo");
    
    //Variabili xml
    var root = xmlDoc.documentElement;
    //alla variabile root assegno i dati importati 
    //var oNodeList = root.childNodes;// childnodes scorro tutti i nodi
    var item;
    var oNodeName, oNodeValue;
    
    alert("ciao");//per verificare se entra nel ciclo e non ci entra...:(
    		
    //Ciclo pacchetto xml
    		for (var i=0; i<oNodeList.length; i++) 
    		{
    			Item = oNodeList.item(i);
    			
    		//Leggo dati
    		
    		oNodeValue = Item.selectSingleNode("titolo");
    		alert(oNodeValue);
    		}
    
    
    }
    quando richiamo la funzione mi mostra solo l'alert "ciao", ma nel ciclo non ci entra proprio.... argh!

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    253
    ciao ragazzi!
    scusate se rompo ancora con questo argomento!
    pero' ho fatto dei progressi!
    nel senso che sono riuscita a sistemare la questione dei nodi, ossia filtra secondo i parametri che ho scelto, questo funziona se tutte le immagini inizialmente le nascondo, dopo di che io filtro e mi mostra quello che ho filtrato.
    pero' se io volessi iniziare con tutte le immagini presenti e dopo che filtro nascondere quelle che non mi interessa avere, mi dovrebbe togliere tutti quelli hanno ecommerce=false (perchè io ho deciso di impostare così il filtro di ricerca false o true), il consiglio che vi chiedo è come posso fare per far si che quando scelgo un filtro mi nasconda quelli che non mi interessano es. scelgo ecommerce=true e quelli con false si nascondo...
    io ho pensato di fare un array bidimensionale dove estrae tutti gli id nel primo e nel secondo ho i due stati true o false e alla fine li confronto....
    vi faccio vedere il link della pagina non esatto ossia che mi mostra il contrario di quello che voglio...

    http://www.markeco-db.net/elisa/XML2/default.htm
    se provate a filtrare ecommerce....mostra in pratica il contrario questo perchè nella funzione mostra ho impostato visible:hidden...
    scusate ma mi sono accanita! Faccio questi esercizi per allenarmi un po' ...
    lascio quello che ho fatto tutto commentato intanto che provo a vedere se riesco a risolvere...se riuscite a consigliarmi qualcosa davvero troppo gentili...
    http://www.markeco-db.net/elisa/XML2.zip
    un grande saluto.
    Eli

  4. #4
    Per risolvere velocemente il tuo problema credo basterebbe invertire i true con false nella chiave di ricerca e gli and con or

    infatti tu vuoi avere una lista di tutti i nodi da nascondere che sono la negazione di quelli da mostrare. E quindi basta negare la condizione di ricerca

    Detto questo il tuo script ha un po' di errori sintattici.

    Io non sono un grande esperto di XML. Pero' non credo che tu abbia utilizzato il modo migliore per richiamare un oggetto XML

    Infatti il tuo script va con IE ma non con FF e gia' questo non e' un buon segno.

    Forse sarebbe il caso di utilizzare l'oggetto XMLHttpRequest (strumento che puoi imparare ad usare leggendo la guida ajax di html.it)

    E utilizzare quindi una sitassi piu' aderente agli standard e piu' cross-browser.

    Ti consiglio - se intendi utilizzare js in maniera massiccia - di sviluppare il tuo codice su Firefox dove trovi ottimi strumenti di debug (firebug in primis) che ti aiuteranno a trovare velocemente gli errori.

    Salvo poi verificarlo anche sotto IE e altri browser...

    Al limite per dubbi javascript puoi creare delle discussioni apposite su quel forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    253
    si ci avevo pensato pure io...grazie!

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.