Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174

    Javascript non funziona in produzione

    Salve a tutti!
    Ho un problema alquanto strano che non mi si era mai presentato e che mi sta facendo letteralmente impazzire.
    Ho una banalissima pagina jsp nella quale nel tag head ho il seguente codice
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
            ...
            <link type="text/css" rel="stylesheet" href="styles/custom-theme/jquery-ui-1.8.16.custom.css" />
            <script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
            <script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script>
            <script type="text/javascript" src="js/booking.js"></script>
        </head>
    il file booking contiene alcune funzioni che invoco dall'html.
    Ora, in locale funziona tutto alla perfezione, ma andando in produzione, gli script vengono caricati correttamente, infatti ne riesco a vedere il codice e firebug lo conferma, ma le funzioni non vengono invocate.
    Ho provato ad invocarle con firebug, ma il risultato è undefined.
    Non so più dove sbattere. Mi date gentilmente una mano a capire il problema? Grazie infinite.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Link alla pagina pubblica.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174
    Ciao, grazie innanzi tutto per l'intervento.
    Purtroppo è una applicazione che gira su un server in lan ed essendo utilizzata internamente all'azienda non ha accessi dall'esterno.
    Posso postare il codice

    booking.js
    codice:
    var ora = new Array();
    ora[7] = ora[10] = ora[13] = ora[16] = ora[19] = new Array('15');
    ora[8] = ora[11] = ora[14] = ora[17] = new Array('00', '45');
    ora[9] = ora[12] = ora[15] = ora[18] = new Array('30');
    ora[20] = new Array('00');
                
    $(function(){
        $('input[name=data]').datepicker({
            'dateFormat': 'dd/mm/yy',
            'monthNames': ['Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'],
            'dayNamesMin': ['Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab']
        });
    });
                
    function cambiaMinutiFine() {
        inizio = parseInt($('select[name=ora]').val());
        fine = parseInt($('select[name=oraFine]').val());
                    
        $('select[name=minutiFine]').html('');
        for (i = (inizio == fine ? 1 : 0); i < ora[fine].length; i++) {
            $('select[name=minutiFine]').append('<option value="' + ora[fine][i] + '">' + ora[fine][i] + '</option>');
        }
    }
                
    function cambiaOraFine() {
        ora_inizio = parseInt($('select[name=ora]').val());
        
        if (ora[ora_inizio].length > 1) {
            minuti_inizio = parseInt($('select[name=minuti]').val());
            
            if (minuti_inizio == ora[ora_inizio][1]) {
                ora_inizio++;
            }
        } else {
            ora_inizio++;
        }
        
        $('select[name=oraFine]').html('');
        for(i = ora_inizio; i <= 20; i++) {
            $('select[name=oraFine]').append('<option value="' + i + '">' + (i.toString().length == 1 ? '0' : '') + i + '</option>');
        }
        cambiaMinutiFine();
    }
                
    function cambiaMinuti(tmp) {
        $('select[name=minuti]').html('');
        for (i = 0; i < ora[tmp.value].length; i++) {
            $('select[name=minuti]').append('<option value="' + ora[tmp.value][i] + '">' + ora[tmp.value][i] + '</option>');
        }
                    
        if (parseInt($('select[name=attivita]').val()) == 6) {
            cambiaOraFine();
        }
    }
                
    function apriNuovaPrenotazione(ore, minuti, giorno, mese, anno) {
        $('#finestraPrenotazione input[name=data]').val(giorno + '/' + mese + '/' + anno);
        $('#finestraPrenotazione select[name=ora]').val(ore);
                    
        $('select[name=minuti]').html('');
        for (i = 0; i < ora[ore].length; i++) {
            $('select[name=minuti]').append('<option value="' + ora[ore][i] + '">' + ora[ore][i] + '</option>');
        }
                    
        if (parseInt($('select[name=attivita]').val()) == 6) {
            cambiaOraFine();
        }       
                    
        $('#finestraPrenotazione select[name=minuti]').val(minuti);
        $('#nuovaPrenotazione #finestraModale').css('display', 'block');
    }
    
    function apriModificaPrenotazione(idprenotazione, ore, minuti, giorno, mese, anno) {
        $('#finestraPrenotazione input[name=data]').val(giorno + '/' + mese + '/' + anno);
        $('#finestraPrenotazione select[name=ora]').val(ore);
        $('#finestraPrenotazione input[name=idprenotazione]').val(idprenotazione);
                    
        $('select[name=minuti]').html('');
        for (i = 0; i < ora[ore].length; i++) {
            $('select[name=minuti]').append('<option value="' + ora[ore][i] + '">' + ora[ore][i] + '</option>');
        }
                    
        if (parseInt($('select[name=attivita]').val()) == 6) {
            cambiaOraFine();
        }       
                    
        $('#finestraPrenotazione select[name=minuti]').val(minuti);
        $('#modificaPrenotazione #finestraModale').css('display', 'block');
    }
                
    function chiudiNuovaPrenotazione() {
        $('#finestraPrenotazione select[name=attivita]').val(0);
        adattaFinestra();
        $('#nuovaPrenotazione #finestraModale').css('display', 'none');
    }
    
    function chiudiModificaPrenotazione() {
        $('#modificaPrenotazione #finestraModale').css('display', 'none');
    }
                
    function enfatizza(target) {
        $(target).attr('src', 'images/icons/32/close_hover.png');
    }
                
    function deenfatizza(target) {
        $(target).attr('src', 'images/icons/32/close.png');
    }
                
    function adattaFinestra() {
        switch (parseInt($('select[name=attivita]').val())) {
            case 0:
                $('.elem.opz').css('display', 'none');
                break;
            case 1: case 2:
                $('.elem.opz').css('display', 'none');
                $('.elem.dati.opz').css('display', 'block');
                break;
            case 3: case 4: case 5:
                $('.elem.opz').css('display', 'none');
                $('.elem.cliente.opz').css('display', 'block');
                break;
            case 6:
                $('.elem.opz').css('display', 'none');
                $('.elem.fine.opz').css('display', 'block');
    
                // determino l'ora di inzio
                cambiaOraFine();
                break;
        }
    }
    
    function mostraIcone(target) {
        $('img', target).css('display', 'inline');
        $('a', target).css('display', 'inline');
    }
    
    function nascondiIcone(target) {
        $('img', target).css('display', 'none')
    }
    
    function saturaIcona(target, tipo) {
        $(target).attr('src', 'images/icons/32/' + tipo + '.png');
    }
    
    function desaturaIcona(target, tipo) {
        $(target).attr('src', 'images/icons/32/d' + tipo + '.png');
    }
    
    function controllaDatiPrenotazione() {
        if ($('#finestraPrenotazione .elem select[name=attivita]').val() == 0) {
            alert('Devi specificare il tipo di attività');
            
            return false;
        } else if ($('#finestraPrenotazione .elem select[name=attivita]').val() > 0 &&
            $('#finestraPrenotazione .elem select[name=attivita]').val() < 3) {
            if ($('#finestraPrenotazione .elem input[name=cognome]').val() == '[Cognome]' ||
                $('#finestraPrenotazione .elem input[name=nome]').val() == '[Nome]') {
                alert('Devi specificare il cognome e nome del cliente');
                
                return false;
            }
        } else if ($('#finestraPrenotazione .elem select[name=attivita]').val() > 2 &&
            $('#finestraPrenotazione .elem select[name=attivita]').val() < 6) {
            if ($('#finestraPrenotazione .elem select[name=idcliente]').val() == 0) {
                alert('Devi specificare un cliente');
                
                return false;
            }
        }
        
        return true;
    }
    
    function apriFinestraDettagli(target) {
        $('#' + target + " .finestraModale").css('display', 'block');
    }
    
    function chiudiFinestraDettagli(target) {
        $('#' + target + " .finestraModale").css('display', 'none');
    }
    
    function chiudiMessaggioErrore(target, url) {
        $('#' + target).css('display', 'none');
        window.location = 'index.jsp';
    }
    
    function ricarica() {
        location.reload(true);
    }
    
    function aggiorna() {
        setTimeout('ricarica()', 8000);
        setInterval('ricarica()', 8000);
    }
    
    function indietro() {
        history.go(-1);
    }
    
    function mostraTabella(target) {
        $('#' + target + ' .corpoNascosto').toggle('blind', 1000);
    }
    index.jsp
    codice:
    <%@page import="booking.controller.Utenti"%>
    <%@page import="booking.beans.Utente"%>
    <%@page import="booking.utils.Eventi"%>
    <%@page import="booking.utils.Calendario"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
            <title>Sistema di Prenotazione Centro Medico Esculapio</title>
            <link type="text/css" rel="stylesheet" href="styles/booking.css" />
            <link type="text/css" rel="stylesheet" href="styles/calendario.css" />
            <link type="text/css" rel="stylesheet" href="styles/eventi.css" />
            <link type="text/css" rel="stylesheet" href="styles/prenotazione.css" />
            <link type="text/css" rel="stylesheet" href="styles/dettagli.css" />
            <link type="text/css" rel="stylesheet" href="styles/errore.css" />
            <link type="text/css" rel="stylesheet" href="styles/custom-theme/jquery-ui-1.8.16.custom.css" />
            <script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
            <script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script>
            <script type="text/javascript" src="js/booking.js"></script>
        </head>
        <body> 
            ...
    <div id="nuovaPrenotazione">
    <div id="finestraModale">
        [img]images/icons/32/close.png[/img]
        <div id="finestraPrenotazione">
            <form action="Booking" method="post" onsubmit="return controllaDatiPrenotazione();" >
                <div class="elem">
                    <label for="stanza">Stanza</label>
                    <select name="stanza">
                        ...
                    </select>
                </div>
                <div class="elem">
                    <label for="data">Data</label>
                    <input type="text" name="data" />
                </div>
                <div class="elem">
                    <label for="ora">Ora</label>
                    <select name="ora" onchange="cambiaMinuti(this)">
                        ...                   
                    </select>
                    <select name="minuti" onchange="cambiaOraFine()">
                        ...
                    </select>
                </div>
                <div class="elem">
                    <label for="attivita">Attivit&agrave;</label>
                    <select name="attivita" onchange="adattaFinestra()">
                        <option value="0">Seleziona attivit&agrave;...</option>
                        ...
                    </select>
                </div>
                <div class="elem dati opz">
                    <label for="cliente">Cliente</label>
                    ...
                </div>
                <div class="elem cliente opz">
                    <label for="cliente">Cliente</label>
                    <select name="idcliente">
                        <option value="0">Seleziona cliente...</option>
                        ...
                    </select>
                </div>
                <div class="elem fine opz">
                    <label for="fine">Fine</label>
                    <select name="oraFine" onchange="cambiaMinutiFine(this)">
                        ...                    
                    </select>
                    <select name="minutiFine">
                    </select>
                </div>
                <div id="pulsanti" class="elem">
                    <input type="submit" name="action" value="Prenota" />
                </div>
            </form>
        </div>
    </div>
    </div>
            ...
        </body>
    </html>
    ho tolto un pò di roba superflua, ma come dicevo sono pagine jsp quindi c'è il java in mezzo e la vedo dura testarlo, spero comunque che una analisi possa aiutarvi a capire il problema.
    Grazie infinite

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174
    a questo indirizzo trovate un html dato in output da apache tomcat che non funziona.
    Per testarlo basta che nella tabella di destra cliccate sull'icona a forma di orologio e nella finestra che si apre scegliete un'attività. La finestra si dovrebbe adattare mostrando vari campi nascosti alla modifica dell'attività ma questo non avviene.
    Scusate per tutto il codice di prima

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174
    Problema individuato e risolto con successo. Grazie comunque

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    e cos' era? come hai risolto?

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    174
    La select attività viene popolata prendendo i dati da un db gli indici id che corrispondevano poi ai value nelle option non erano corretti e quindi la funzione adattaFinestra non trovando gli indici corretti non aveva alcun effetto.

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.