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

    Piccolo script AJAX non funziona su Firefox e Chrome

    Ciao a tutti!

    Ho un problema con un piccolo script che sfrutta un iFrame nascosto per salvare delle informazioni, ma ho problemi con Firefox e Chrome. Testato e funzionante invece su IE.

    Ho dei div nominati prodName_n e prodPrice_n così:

    codice:
    Modifica
    
    <div id="prodName_0">Mio campo nome prodotto</div>
    <div id="prodPrice_0">Mio campo prezzo prodotto</div>
    
    <input id="btn_0" type="button" onClick="javascript: updateProd(0)"
           value=" Aggiorna " style="visibility: hidden">
    Alla pressione di Modifica i due div diventano campi editabili e il pulsante aggiorna diventa visibile.

    La funzione javascript editProd() è così definita:

    codice:
    function editProd(index) {
    	
    	if (!(document.getElementById("btn_"+index).style.visibility == "visible")) {
    	
    		document.getElementById("prodName_"+index).innerHTML = "<input type=\"text\" name=\"prodNameInput_" + index + "\" size=\"30\" / value=\"" + document.getElementById("prodName_"+index).innerHTML + "\">";
    		
    		document.getElementById("prodPrice_"+index).innerHTML = "<input type=\"text\" name=\"prodPriceInput_" + index + "\" size=\"4\" / value=\"" + document.getElementById("prodPrice_"+index).innerHTML.substr(0, document.getElementById("prodPrice_"+index).innerHTML.length-5) + "\">€/Kg";
    	
    		document.getElementById("btn_"+index).style.visibility = "visible";
    		
    	}
    	
    }
    e fin qui tutto funziona alla perfezione.

    Quando clicco poi sul pulsante aggiorna parte la funzione javascript updateProd()

    codice:
    function updateProd(index) {
    	
    	var myFrm = null;
    
    	myFrm = frames["hFrm"];
    	
    	myFrm.location = "changeXml.asp?action=update&prod=" + index + "&name=" +
                           document.getElementById("prodNameInput_"+index).value + "&price=" +
                           document.getElementById("prodPriceInput_"+index).value
    	
    }
    che fa ovviamente riferimento a un iFrame nascosto precedentemente creato ad hoc nell'HTML.

    Questo passaggio non funziona né in firefox né in chrome. La pagina changeXml.asp non viene chiamata.

    In IE invece, la pagina changeXml.asp fa quello che deve fare e poi ritorna uno script con una chiamata a una funzione che fa ritornare i div semplice testo, facendo sparire i campi di input.


    Qualcuno mi sa aiutare?

    Grazie in anticipo!
    Teejay - Just a Flash Web-designer

    L4TN.net - Live4theNight, Enjoy your night life!

  2. #2
    su Firefox usa "Strumenti > console degli errori" per vedere che errore c'è nella pagina usando Firefox.
    Se poi senti l'esigenza di un tool un po' più sofisticato (che, per esempio, ti permetta l'ispezione del codice, del debug usando anche watch sulle variabili e così via) scarica e installa FireBug.

    ciao
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  3. #3
    Grazie della risposta!

    Non ci avevo pensato alla consolle, grazie del consiglio.

    Comunque quando clicco su Aggiorna mi dice:

    Errore: document.getElementById("prodNameInput_" + index) is null


    Praticamente non mi trova l'elemento creato runtime dalla funzione editProd()

    Idee?
    Teejay - Just a Flash Web-designer

    L4TN.net - Live4theNight, Enjoy your night life!

  4. #4
    Ho trovato! Con Firefox/Chrome si deve settare anche l'attributo id (oltre a name)
    Teejay - Just a Flash Web-designer

    L4TN.net - Live4theNight, Enjoy your night life!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.