Pagina 10 di 11 PrimoPrimo ... 891011 UltimoUltimo
Visualizzazione risultati 271 fino 300 di 321

Discussione: Stampare il totale costo in base alla quantità prodotto

  1. #271
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    il punto e' che NON c'e' bisogno di visualizzarlo nella index !

    il file formG crea l'email e poi re-indirizza altrove... e viene eseguito dallo script JS

    nella index , tutto il catalogo , il carrello e i dati del cliente non hanno bisogno di quel file per funzionare !

    ---------

    nell'esempio che ti ho linkato prima , ad esempio , io ho un file principale (prodotti.html) e 4 file PHP esterni che vengono eseguiti rispettivamente per: creare la lista del catalogo , generare il carrello , creare il form dati cliente ed infine per inviare email con reidirizzamento finale alla pagina principale/
    Ultima modifica di NLSweb : 31-10-2014 alle ore 00.33.30

  2. #272
    Guest

    Predefinito

    Lo so, è una questione di estetica, tutto in una pagina.

  3. #273
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    ....prima facciamolo funzionare...dopo e' anche possibile eseguire l'operazione in background....

  4. #274
    Guest

    Predefinito

    Sembra che il problema sia in questo codice in carrello.php, cioè, non fa proseguire ai controlli php in formG. Difatti se lo tolgo, da chiaramente altri problemi, però mi fa passare ai controlli php e mi da come alert "Il tuo carrello è vuoto", poi torna indietro alla home come da istruzioni.


    Codice HTML:
    /* Dati del carrello */
         var spesa = "";
       $(".nomeLibro").each(function(){
          var nome = $(this).html();
          spesa = spesa + "prodotto[]="+nome+"&";
       });
       $(".moneyCarrello1").each(function(){
          var prezzo = $(this).val();
          spesa = spesa + "prezzo[]="+prezzo+"&";
       });
       $(".quantity").each(function(){
          var quantita = $(this).val();
          spesa = spesa + "quantita[]="+quantita+"&";
       });
       $(".subTotaleX").each(function(){
          var subtot = $(this).val();
          spesa = spesa + "subtotale[]="+subtot+"&";
       });
    	spesa = spesa + "TotaleDaPagare="+totaleacquisto+"&Nome="+nomeG+"&Cognome"+cognome+"&Via="+via+"&n°="+n+"&Località="+loc+"&Provincia="+pro+"&CAP="+cap+"&Nazione="+naz+"&Email="+email+"&Telefono="+tel+"&Pagamento="+pagamento+"&Messaggio="+messaggioG+"";
    	var azione = "ordine/formG.php?"+spesa;
    	window.open(azione,"_self");
    Ultima modifica di gruppoalveo : 31-10-2014 alle ore 11.13.12

  5. #275
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Dubito che sia nel codice che hai riportato... forse piu' probabile nella prima parte:
    Codice:
    ....
    var controlla = nomeCampoG();
    if (!controlla){
     f.controlla.focus();
     verifica = false;
    }
    ......
    qui ci sono due punti :

    1) cosa dovrebbe fare esattamente questo f.controlla.focus() ??
    2) e le esecuzioni delle tue funzioni JS

    comunque il submit del modulo d'ordine con i dati del carrello viene eseguito correttamente , poi quando si esegue il file formgG , invece di inviare le email (non so se viene fatto o meno) mostra quel secondo modulo d'ordine nel DIV a pie' di pagina...
    quindi il problema e' nel file formG
    Ultima modifica di NLSweb : 31-10-2014 alle ore 15.51.34

  6. #276
    Guest

    Predefinito

    Le mie invenzioni del focus: praticamente "se il campo non è pieno, si rimane dentro"

    I js mi servono per avvisare l'utente.

    Le email si inviavano correttamente prima di quella parte che ti ho postato prima, perché è quello che è stato modificato. Il formG è sempre quello…comunque vedi tu.

    **********************

    Se il problema fosse nel formG, per quale motivo tutto funziona se tolgo quella parte di codice del post #274 o comunque in carrello.php?
    Ultima modifica di gruppoalveo : 31-10-2014 alle ore 16.12.48

  7. #277
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Ok. procediamo per gradi..

    all'inizio tutto il tuo formG i funzionava ma non avevi il carrello .. (giusto?!)

    il tuo sistema comprende una serie di controlli JS per la compilazione del modulo d'ordine e una seconda serie di controlli in PHP
    quindi l'invio delle email...


    in questo contesto dobbiamo aggiungere il carrello..

    come prima controlliamo che il carrello non sia vuoto (basta verificare il totale)
    questo controllo puo' essere indipendente o implementato nel tuoi controlli JS

    quindi all'esecuzione del submit del modulo d'ordine , la funzione standart viene momentaneamente disabilitata , per permettere di "aggiungere il carrello" .. per farlo ci sono due strade:

    1) [quella da noi intrapresa] creiamo una stringa con tutti le info da inviare al file PHP che gestisce l'ordine , quindi apriamo il file passandogli tutti gli argomenti .

    2) copiano tutti i campi carrello all'interno del FORM e riabilitiamo ed eseguiamo il submit "naturale"


    in entrambi i casi il file PHP che gestisce l'ordine inviato , dovra' prelevare i dati (GET / POST) , fare un secondo controllo PHP , craere le email , .....ecc. ecc.

    Ora la strada percorsa fino a qui (1) ha un problema :
    dopo che l'invio dei dati e' completato (e fino a qui tutto funzionante!!)
    compare questo secondo modulo d'ordine ... e non so se le email vengono inviate..


    Quindi , adesso , o proviamo a percorrere una strada diversa... o dobbiamo modificare qualcosa nel codice PHP al fine di completare il punto (1).

    ------------------------
    in merito alle funzioni JS (post #274), non sono loro il problema poiche' non generano alcun file , l'unica cosa che eseguono e la lettura dei campi e l'invio dei dati al tuo file php.

    la natura del problema e tale che puo' essere generata solo da codice php
    ------------------------

    ora sta a te , decidere come vuoi procedere ... io se posso ti daro' sempre una mano !

  8. #278
    Guest

    Predefinito

    Mah. non ho idea, a me basta che i codici php rimangano così, visto che funzionano.
    Tu che dici?

  9. #279
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Se non vuoi modificare il codice PHP , allora forse possiamo provare la seconda strada..

    per farlo , bisogno modificare alcune parti della funzione controllo..

    Codice HTML:
    function controlloG(){
    
    /* Controlla se il carrello è pieno o vuoto */
    
       var totaleacquisto = $("#areacalcolo .totspesa").val(); 
       totaleacquisto = totaleacquisto.toString(); 
       totaleacquisto = totaleacquisto.replace(",", ".");
       totaleacquisto = parseFloat(totaleacquisto);
       if(totaleacquisto<=0){
        document.getElementById('carrelloG').innerHTML = "Il tuo carrello è vuoto!";
        $("#carrelloG").show(); 
       }
    
    /* Se il carrello non è vuoto , prosegui  */
     if(totaleacquisto>0){
    
       $(".nomeLibro").each(function(){
          var nome = $(this).html();
          $("#shopping").append("<input type='text' name='prodotto[]' value='"+nome+"' />");
       });
       $(".moneyCarrello1").each(function(){
          var prezzo = $(this).val();
          $("#shopping").append("<input type='text' name='prezzo[]' value='"+prezzo+"' />");
       });
       $(".quantity").each(function(){
          var quantita = $(this).val();
          $("#shopping").append("<input type='text' name='quantita[]' value='"+quantita+"' />");
       });
       $(".subTotaleX").each(function(){
          var subtot = $(this).val();
          $("#shopping").append("<input type='text' name='subtotale[]' value='"+subtot+"' />");
       });
    
      $("#mioG").submit(function(event){
       $(this).unbind('submit').submit();
      });
    
     }
    }
    ... e devi aggiungere un div dopo "validatoreCampoG" e prima della fine di fieldset , con ID = shopping

    Codice HTML:
    <fieldset id="contenutoG"> 
    ...
    <div id="contaValidG"></div><div style="margin-right: 95px;" id="validatoreCampoG"></div> 
    <div id="shopping"></div>
    </fieldset> 
    infine devi ripristinare onsubmit
    Codice:
    onsubmit="return (nomeCampoG() && cognomeCampoG() && viaCampoG() && nCampoG() && locCampoG() && proCampoG() && capCampoG() && telCampoG() && emailCampoG() && validatoreCampoG());"
    in pratica :
    1) disabilitiamo il submit
    2) associamo al submit la funzione controllo
    3) verifichiamo che il carrello non sia vuoto
    4) copiano tutti i dati del carrello in un DIV all'interno del FORM , in campi INPUT
    5) riabilitiamo il submit e lo eseguiamo

    quindi il form inviera' anche tutti i campi INPUT aggiunti con i dati del carrello
    i quali poi dovrai recuperarli in formG usando lo stesso sistema precedentemente indicato

    se hai dubbi , chiedi pure (e fai un backup del codice attuale prima di apportare queste modifiche)
    Ultima modifica di NLSweb : 01-11-2014 alle ore 15.22.24

  10. #280
    Guest

    Predefinito

    Ok, tu cosa intendi per modificare il codice php (l'altra soluzione)?

  11. #281
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Quando formG.php mostra quel secondo modulo , e' chiaramente un errore che dobbiamo risolvere ... e per farlo bisogna capire quale "problema" nel codice PHP generi questo conflitto.

    se la fonte del problema non e' il file formG , allora dobbiamo cercare altrove ... ma sempre nel codice PHP , poiche' e' l'unico in grado di creare quel tipo di problema.

  12. #282
    Guest

    Predefinito

    Va meglio, è da sistemare:

    - se clicco su Invia appare l'alert Il tuo carrello è vuoto, questo invece dovrebbe uscire per ultimo, dopo l'alert di tutti i campi del form

    - una volta riempito il carrello e si clicca su Invia, sotto il pulsante appaiono dei campi

  13. #283
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    per non far visualizzare i campi , imposta nel CSS che il DIV shopping sia invisibile

    ho notato che c'e' un problema , se il carrello e' pieno ma i campi del form no e si preme il tasto invia , i campi vengo richiesti come obbligatori (come giusto che sia) ma la funzione controllo continua ag aggiungere i campi input del carrello al form; per prevenire questo errore va ripristinata questa parte di codice della funzione controllo:

    Codice HTML:
    function controlloG(){
    
    /* Controlla se il carrello è pieno o vuoto */
       var totaleacquisto = $("#areacalcolo .totspesa").val(); 
       totaleacquisto = totaleacquisto.toString(); 
       totaleacquisto = totaleacquisto.replace(",", ".");
       totaleacquisto = parseFloat(totaleacquisto);
       if(totaleacquisto<=0){
        document.getElementById('carrelloG').innerHTML = "Il tuo carrello è vuoto!";
        $("#carrelloG").show(); 
       }
    
    /* controlla se i campi del form sono stati riempiti */
    var verifica = true;
    var controlla = nomeCampoG();
    if (!controlla){
     verifica = false;
    }
    var controlla = cognomeCampoG();
    if (!controlla){
     verifica = false;
    }
    var controlla = viaCampoG();
    if (!controlla){
     verifica = false;
    }
    var controlla = nCampoG();
    if (!controlla){
     verifica = false;
    }
    var controlla = locCampoG();
    if (!controlla){
     verifica = false;
    }
    var controlla = proCampoG();
    if (!controlla){
     verifica = false;
    }
    var controlla = capCampoG();
    if (!controlla){
     verifica = false;
    }
    var controlla = teòCampoG();
    if (!controlla){
     verifica = false;
    }
    var controlla = emailCampoG();
    if (!controlla){
     verifica = false;
    }
    var controlla = pagamentoCampoG();
    if (!controlla){
     verifica = false;
    }
    var controlla = validatoreCampoG();
    if (!controlla){
     verifica = false;
    }
    var controlla = controlloCampoG();
    if (!controlla){
     verifica = false;
    }
    
    
    /* Se  è tutto ok, prosegui  */
     if(totaleacquisto>0 && verifica){
    
       $(".nomeLibro").each(function(){
          var nome = $(this).html();
          $("#shopping").append("<input type='text' name='prodotto[]' value='"+nome+"' />");
       });
       $(".moneyCarrello1").each(function(){
          var prezzo = $(this).val();
          $("#shopping").append("<input type='text' name='prezzo[]' value='"+prezzo+"' />");
       });
       $(".quantity").each(function(){
          var quantita = $(this).val();
          $("#shopping").append("<input type='text' name='quantita[]' value='"+quantita+"' />");
       });
       $(".subTotaleX").each(function(){
          var subtot = $(this).val();
          $("#shopping").append("<input type='text' name='subtotale[]' value='"+subtot+"' />");
       });
    
      $("#mioG").submit(function(event){
       $(this).unbind('submit').submit();
      });
    
     }
    }

    per quanto riguardo il messaggio di allerta che il carrello e' vuoto mi sembra che funzioni bene ...
    l'unica cosa e che quando viene inviato l'ordine se ne presenta un altro per un attimo ...
    ma non e' lo stesso che abbiamo impostato in index.....screenshoot
    Ultima modifica di NLSweb : 02-11-2014 alle ore 02.39.00

  14. #284
    Guest

    Predefinito

    Ora non si invia più il form.

    L'alert del tuo screnshot fa parte dei controlli php che ci sono dopo l'invio, questo è il codice:

    Codice PHP:
    if(isset($_POST['inviaG'])) {
    $data_localeG = time(); //Stampa nel db la data numerica es. 1360585588
    $nomeG = htmlspecialchars(addslashes(ucfirst(trim($_POST['nomeG']))));
    $cognome = htmlspecialchars(addslashes(ucfirst(trim($_POST['cognome']))));
    $via = htmlspecialchars(addslashes(ucwords(trim($_POST['via']))));
    $n = htmlspecialchars(addslashes(ucfirst(trim($_POST['n']))));
    $loc = htmlspecialchars(addslashes(ucfirst(trim($_POST['loc']))));
    $pro = htmlspecialchars(addslashes(ucfirst(trim($_POST['pro']))));
    $cap = htmlspecialchars(addslashes(trim($_POST['cap'])));
    $naz = htmlspecialchars(addslashes(ucfirst(trim($_POST['naz']))));
    $email = htmlspecialchars(strtolower($_POST['email']));
    $email = str_replace(" ","",$email); // Toglie gli spazi interni nell'email
    $tel = htmlspecialchars(addslashes(trim($_POST['tel'])));
    $messaggioG = htmlspecialchars(addslashes(ucfirst(trim($_POST['messaggioG']))));
    $pagamento = ($_POST['pagamento']);
    $validatorG = htmlspecialchars(trim($_POST['validatorG']));
    $carrelloG = ($_POST['carrelloG']);

    ...

    //Carrello (Campo obbligatorio)
    if(!empty($_POST['inviaG'])) {
    if (
    $carrelloG == "") {
    $errore .= "&bull;&nbsp;&nbsp;Il tuo carrello è vuoto<br><br>";
    }
    }
    -L'alert js, quello con sfondo giallo che appare alla destra del form, dovrebbe uscire come primo controllo, invece se si preme Invia, appare anche l'alert del campo Nome.

    Nell'onsubmit del form ho aggiunto questo ...&& controlloCampoG());">
    Ultima modifica di gruppoalveo : 02-11-2014 alle ore 09.43.45

  15. #285
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    ok..

    1)
    Nell'onsubmit del form ho aggiunto questo ...&& controlloCampoG());">
    Non va aggiunto perche' la funzione non ha un return true , ed inoltre va sempre ad eseguire l'ultimo comando cioe' dopo aver aggiunto i dati del carrello abilita il submit.


    2) il codice aggiuntivo che ti ho fatto mettere nella funzione controlloG , non serve il focus ..
    Codice:
    ...
    var controlla = controlloCampoG();
    if (!controlla){
    f.controlla.focus();
     verifica = false;
    }
    ...
    in quanto i controlli sui campi del modulo d'ordine li hai direttamente nel onsubmit , non li riproponiamo anche qui ..
    il codice come ti avevo chiesti di inserirlo
    Codice:
    ...
    var controlla = controlloCampoG();
    if (!controlla){
     verifica = false;
    }
    ...
    serve solo a dire alla funzione: " se il modulo e' stato completato ed in carrello non e' vuoto , allora copia i dati del carrello ed abilita il submit ".

    3) alert con sfondo giallo
    se premo si invia del modulo d'ordine ed non ho alcun articolo nel carrello , esso appare " il tuo carrello e' vuoto "
    se inserisco un qualsiasi prodotto nel carrello esso scompare

    ma la sua apparizione e' subordinata alla pressione del tasto INVIO del Modulo d'Ordine

    mentre l'altro (quello dello screenshoot) contenuto nel codice PHP lo puoi anche disabilitare .. in quanto quel codice PHP non viene eseguito se il carrello e' vuoto !

  16. #286
    Guest

    Predefinito

    Il focus lo metto perché così si rimane nel campo stesso.

    Io se premo invio, il form non parte.

  17. #287
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    NON hai definito la variabile VERIFICA ! (post#283)

    Codice:
    /* controlla se i campi del form sono stati riempiti */
    var verifica = true;
    ...

  18. #288
    Guest

    Predefinito

    Non va ancora

  19. #289
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    .....il problema e'

    Codice HTML:
    var controlla = controlloCampoG();
    if (!controlla){
    f.controlla.focus();
     verifica = false;
    }
    var controlla ritorna FALSE ! ed il motivo e' che la funzione (controlloCampoG();) non c'e' in scirptG.js (almeno io non l'ho trovata!)

    elimina !

    Il focus lo metto perché così si rimane nel campo stesso.
    i controlli che vengono fatti nella funzione CONTROLLOG non dovrebbero spostarti il focus !!

  20. #290
    Guest

    Predefinito

    Ho messo controlloCampoG() in scriptG e ho tolto il focus dai tuoi codici. Se premo su Invia il focus esce in tutti i campi in un colpo, dovrebbe invece uscire ogni volta.

    Il focus c'è già nei miei controlli js, però non lo prende
    Codice:
    function nomeCampoG() {
    var f = document.forms.mioformG;
    if(f.nomeG.value == "") { 
    document.getElementById('nomeCampoG').innerHTML = "&bull;&nbsp;&nbsp;Inserire il Nome";
    f.nomeG.focus();
    return false;
    }
    else {
    document.getElementById('nomeCampoG').innerHTML = "";
    }
    return true;
    }
    ...

    Il div shopping, serve ancora? Se si bisogna metterlo display:hidden
    Codice HTML:
    ...
    <div id="contaValidG"></div><div style="margin-right: 95px;" id="validatoreCampoG"></div> 
            <div id="shopping"></div>
    	</fieldset> 
         </form>
    - Anche se il carrello è pieno, esce l''alert php, ho fatto una prova: ho tolto il controllo php del carrello (io comunque sono dell'idea di lasciarlo, un controllo php è sempre una sicurezza in più), il form si invia ma come puoi vedere non trova la pagina. http://www.libridelbenessere.altervista.org/

    //Carrello (Campo obbligatorio)
    if(!empty($_POST['inviaG'])) {
    if ($carrelloG == "") {
    $errore .= "&bull;&nbsp;&nbsp;Il tuo carrello è vuoto<br><br>";
    }
    }
    Ultima modifica di gruppoalveo : 03-11-2014 alle ore 08.21.52

  21. #291
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    non ci siamo capiti bene...

    nel file esterno scriptG.js , tu hai una serie du funzioni per il validamento dei campi del modulo d'ordine ; esse ritornano true o false in base se il campo e' stato compilato o meno.

    esempio:
    Codice:
    function pagamentoCampoG() {
    var f = document.forms.mioformG;
    if(f.pagamento.value == "") {
    document.getElementById('pagamentoCampoG').innerHTML = "&bull;&nbsp;&nbsp;Selezionare un tipo di pagamento";
    f.pagamento.focus();
    return false;
    }else{
    document.getElementById('pagamentoCampoG').innerHTML = "";
    }
    return true;
    }
    quindi nella funzione controlloG noi eseguiemo queste funzioni per assicurarci che il modulo d'ordine sia corretto prima di copiarci dentro il carrello ed abilitare il submit ; per farlo usiamo dei controlli come questo:
    Codice:
     var controlla = pagamentoCampoG();
      if (!controlla){
      verifica = false;
    }
    .....

    ora per quanto riguarda controlloCampoG() ..
    precedentemente avevamo il controllo nella funzione ControlloG , ma non avevamo il corrispettivo nel file esterno scriptG.js ;
    per questo avevamo sempre un false che bloccava l'invio.
    adesso tu hai spostato il codice di controllo nel file JS esterno .. ma non serve a niente cosi.

    Soluzioni:
    1) eliminare completamente controlloCampoG() , sia dalla funzione ControlloG che dal file esterno scriptG
    2) inserire nel file esterno scriptG una funzione corretta e rispristinare il controllo nella funzione ControlloG

    mi domando : cosa vuoi controllare con controlloCampoG() ?

    ---------------------------------------------------------------------------------------

    Il div shopping, serve ancora? Se si bisogna metterlo display:hidden
    Si , certo che serve ancora ... e Si bisogna metterlo in visibility:hidden !
    ti ricordo che questo DIV serve a contenere i valori del carrello che vengono aggiunti al modulo d'ordine.

    ---------------------------------------------------------------------------------------

  22. #292
    Guest

    Predefinito

    Scusa, devi capire…io opterei per la prima soluzione, ho eliminato completamente controlloCampoG.

    A me basta che:

    1. come primo alert js esca "Il tuo carrello è vuoto" e cioè: se il carrello è vuoto non si può nemmeno compilare il form.

    2. che i campi abbiano il focus singolo, a quanto pare il focus che ho già nei miei controlli js non viene intercettato, se invece lo metto nella funzione controlloG, viene intercettato.
    Ultima modifica di gruppoalveo : 03-11-2014 alle ore 17.56.52

  23. #293
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    Ok : )

    per il punto 2 , ripristina il focus nella funzione controlloG ; )

    per il punto 1 , per bloccare il modulo d'ordine se il carrello e' vuoto oltre che disabilitare il SUBMIT dobbiamo anche disabilitare tutti i CAMPI ; quindi se il carrello non e' vuoto si abilitano i campi del modulo . Quando entrambi (il carrello e il modulo) sono corretti allora si conclude copiando i dati del carrello e abilitando il SUBMIT.

    per completare il punto 1 bisogna fare:

    1) disabilitare i campi del modulo all'apertura del documento
    Codice:
    $(document).ready(function(){
      AZZERA();    
    
     $("#mioG").submit(function( event ){
       event.preventDefault();
     });
    
     $("#carrelloG").hide();
     $("#mioG input").attr("disabled",true);
    });
    2) abilitare i campi se il carrello non e' vuoto
    Codice:
    function AGGIUNGIalCARRELLO(id,nome,isbn,imgX,prezzo){
      ...
      $("#mioG input").attr("disabled",false);
    }
    3) disabilitare i campi del modulo se il carrelo si svuota
    Codice:
    function AZZERA(){  
      .....
      $("#mioG input").attr("disabled",true);
    }

    ------------

    p.s.

    se uno prima riempe il carrello , poi riempe il modulo d'ordine ... e poi svuota il carrello ... che si fa si cancellano i campi del modulo d'ordine ?


    ma appena si apre la pagina (e quindi il carrello e' vuoto..) vuoi che il segnale giallo sia gia' visibile ?
    Ultima modifica di NLSweb : 03-11-2014 alle ore 21.39.28

  24. #294
    Guest

    Predefinito

    Ora va meglio, ho notato che se il carrello è vuoto e clicco Invia, appare l'alert js ma anche quello del campo Nome, quest'ultimo non deve apparire.

    Riguardo alla tua domanda, per logica, io direi: se svuota il carrello automaticamente si devono svuotare anche i campi.

    - Appena apre la pagina non deve apparire l'alert js giallo perché potrebbe essere un semplice visitatore (comunque la scritta Il tuo carrello è vuoto c'è già)

    *********************

    Però è strano che la f di f.controlla.focus(); non dia errore
    Ultima modifica di gruppoalveo : 03-11-2014 alle ore 22.05.22

  25. #295
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    se svuota il carrello automaticamente si devono svuotare anche i campi.
    Quindi bisogna aggiungere dopo ogni
    Codice:
    $("#mioG input").attr("disabled",true);
    il seguente codice
    Codice:
    $("#mioG input").val("");
    appare l'alert js ma anche quello del campo Nome, quest'ultimo non deve apparire.
    bisogna migliorare le funzioni in scriptG.js ...
    in particolare bisogna aggiungere :
    Codice:
    function nomeCampoG() {
    var f = document.forms.mioformG;
    var disabilitato = f.nomeG.disabled;
    if(f.nomeG.value == "" && !disabilitato) { 
    document.getElementById('nomeCampoG').innerHTML = "&bull;&nbsp;&nbsp;Inserire il Nome";
    ...
    }
    ...

  26. #296
    Guest

    Predefinito

    C'è questo che non riesco a disabilitare

    Codice HTML:
    // Select pagamento (Campo obbligatorio)
    function pagamentoCampoG() {
    var f = document.forms.mioformG;
    var disabilitato = f.pagamento.disabled;
    if(f.pagamento.value == "" && !disabilitato) { 
    document.getElementById('pagamentoCampoG').innerHTML = "&bull;&nbsp;&nbsp;Selezionare un tipo di pagamento";
    f.pagamento.focus();
    return false;
    }
     else {
    document.getElementById('pagamentoCampoG').innerHTML = "";
    }
    return true;
    }

  27. #297
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    perche' non e' un INPUT ma un SELECT ...

    oltre a questo
    Codice:
    $("#mioG input").attr("disabled",true);
    bisogna aggiungere
    Codice:
    $("#mioG select").attr("disabled",true);
    ----------------
    Però è strano che la f di f.controlla.focus(); non dia errore
    perche' non la definiamo....
    Codice:
    var f = $("#mioG");
    Ultima modifica di NLSweb : 03-11-2014 alle ore 23.27.02

  28. #298
    Guest

    Predefinito

    In questa parte ho sbagliato qualcosa

    Codice:
    <script>  
    $(document).ready(function(){
      AZZERA();    
    
     $("#mioG").submit(function( event ){
       event.preventDefault();
     });
    
     $("#carrelloG").hide();
     
     /*Disabilita i campi del form all'apertura del documento*/
     $("#mioG input").attr("disabled",true);
     $("#mioG select").attr("disabled",true);
     $("#mioG input").val("");
    });
    
    function AZZERA(){  
       $(".ListaProdotti").hide();
       $(".aggiunto").hide();
       $(".aggiungi").show();
       $(".inizio").html("0");
       $("#inizio button").hide();
       $("#titolocarrello").html("<div style=\" float: right; width: 400px; height: auto; font-size: 2em; color: #004080; text-align: center; padding-top: 30px;\">Il tuo Carrello<br><br>è vuoto</div>");
       $("#areacalcolo .totquantita").val("0");
       $("#areacalcolo .totspesa").val("0");
       
       /* Disabilita i campi del form se il carrelo si svuota*/
       $("#mioG input").attr("disabled",true);
       $("#mioG select").attr("disabled",true);
       $("#mioG input").val(""); 
      }
    ...
    Ultima modifica di gruppoalveo : 03-11-2014 alle ore 23.53.43

  29. #299
    NLSweb non è connesso Altervistiano Junior
    Data registrazione
    17-01-2014
    Messaggi
    658

    Predefinito

    .. e si... doppia parenti graffa chiusa...

    ma non si evince dal codice che mi hai postato.. ma dal Debug del codice dal sito
    Codice:
    function AZZERA(){  
       $(".ListaProdotti").hide();
       $(".aggiunto").hide();
       $(".aggiungi").show();
       $(".inizio").html("0");
       $("#inizio button").hide();
       $("#titolocarrello").html("<div style=\" float: right; width: 400px; height: auto; font-size: 2em; color: #004080; text-align: center; padding-top: 30px;\">Il tuo Carrello<br><br>è vuoto</div>");
       $("#areacalcolo .totquantita").val("0");
       $("#areacalcolo .totspesa").val("0");
    
     }  /* questa parentesi va cancellata */
    
       /* Disabilita i campi del form se il carrelo si svuota*/
       $("#mioG input").attr("disabled",true);
       $("#mioG select").attr("disabled",true);
       $("#mioG input").val("");
    }

  30. #300
    Guest

    Predefinito

    Bene, vedo che disabilita del tutto la select anche se il carrello è pieno

    **********************

    Risolto così:

    Codice:
    /*Abilita i campi se il carrello non è vuoto */
      $("#mioG input").attr("disabled",false);
      $("#mioG select").attr("disabled",false);
     }
    Ultima modifica di gruppoalveo : 04-11-2014 alle ore 00.07.48

Pagina 10 di 11 PrimoPrimo ... 891011 UltimoUltimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •