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

    MX04 - parola chiave per ricerca

    Salcve a tutti. Ho quasi risolto un problema gravoso, mi manca pochissimo
    In un motore di ricerca che si basa su xml cerco autore o parola chiave o sessione
    tutto ok
    o quasi:
    se gli autori di un documento sono più di uno e digito entrambi i cognomi mi dice nessun risutato utile
    se cerco un solo cognome funziona
    se cerco una parte di cognome funziona
    se metto entrambi i cognomi incluse le inizioali dei nomi, nell'ordine come sono scritti nel file xml funziona
    questo, se può servire è il codice:

    codice:
    onClipEvent (load) {
    	Cosatorna = new Array();
    	Cosacarica = new Array();
    	
    	Authors = new Array();
    	Keywords = new Array;
    	Session = new Array();
    	
    	search_XML = new XML();
    	search_XML.ignoreWhite = true;
    	search_XML.onLoad = function(evvai) {
    		if (evvai) {
    			parsailfile(search_XML);
    		}
    	};
    	search_XML.load("motore.xml");
    	function parsailfile(xmlDoc) {
    		for (n=0; n<xmlDoc.firstChild.childNodes.length; n++) {
    			Cosatorna.push(xmlDoc.firstChild.childNodes[n].attributes.session + "
    " + xmlDoc.firstChild.childNodes[n].attributes.cosatorna + "
    " + xmlDoc.firstChild.childNodes[n].attributes.authors +"");
    			//for (var i = 0; i < Cosatorna.length; i++){
        //Cosatorna[i] = Cosatorna[i].split("").join("");
        //Cosatorna[i] = Cosatorna[i].split("").join("");
    	//Cosatorna[i] = Cosatorna[i].split("[br]").join("
    ");
    	//Cosatorna = Cosatorna.split("").join("");
    	//Cosatorna[i] = Cosatorna[i].split("[i]").join("[i]");
    //}
    			Cosacarica.push(xmlDoc.firstChild.childNodes[n].attributes.cosacarica);
    			
    			Authors.push(xmlDoc.firstChild.childNodes[n].attributes.authors);
    			Keywords.push(xmlDoc.firstChild.childNodes[n].attributes.keywords);
    			Session.push(xmlDoc.firstChild.childNodes[n].attributes.session);
    		}
    	}
    }
    Un grazie anticipato a chi risponde

  2. #2
    Con un altro "capoccia" siamo riusciti ad andare un po' avanti
    La variabile "casella_ricerca" è la parola (o le parole) inserita nella apposita casella di input
    Con la funzione "split" sullo spazio recuperiamo le parole e con un ciclo determiniamo la ricerca su tutti i record che contengono una delle due parole. Purtroppo a me serve che la ricerca venga effettuata in modo da estrapolare i record che contangono entrambe le parole.
    codice:
    function cerca() {
     testo = "";
     sexione = casella_cerca + " ";
     j=0;
     Rotto = casella_cerca.split(" ");
     for (a=0; a<Session.length; a++) {
      for (k=0; k<Rotto.length; k++) {
       if(scelta=="Authors"){
        if (Authors[a].toLowerCase().indexOf(Rotto[k].toLowerCase(), 1) != -1) {
         //listbox1.addItem(Cosatorna[a], Cosacarica[a]);
         testo = testo + "<font size='14' family='Verdana' color='#333333>'>"
         testo = testo + (Cosatorna[a] + "
    <font color='#FF0000'>Open Document&gt;</font>
    
    ")
         testo = testo + "</font>"
         mytextarea.text=testo;
    nessuna idea???

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.