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

    [js+http req]evitare l'action di un form

    Salve ragazzi,

    allora ho uno "step-form" ogni domanda viene fatta in una pagina diversa e i dati sono salvati in sessione anche se la cosa è irrilevante. Dal lato server side funziona. Ora stò aggiungendo un pò di javascript e httpRequest per rendere il sistema piu immediato.

    il js finora scritto è questo:
    Codice PHP:
    function checkFields() {
        var 
    importo document.step2.importo;
        var 
    consumo document.step2.consumo;
        
    alert('check field');
        
        
    oHttpReq ajaxObject.__callXMLhttp();
        if ( 
    oHttpReq ) {
            var 
    url 'checkError.php';
            var 
    dataSendPost "importo=" escape(importo.value) + "&consumo=" escape(consumo.value);
            
    alert(dataSendPost);

            
    oHttpReq.open"POST"urltrue );
            
    oHttpReq.onreadystatechange displayDetails;
            
    oHttpReq.setRequestHeader("Content-Type""application/x-www-form-urlencoded");
            
    oHttpReq.senddataSendPost );
        }
    }

    function 
    displayDetails() {
        if ( 
    oHttpReq.readyState == && oHttpReq.status == 200 ) {
            
    helpDiv document.getElementById('help');
            
    helpDiv.innerHTML oHttpReq.responseText;
            
    alert(oHttpReq.responseText);
        }
    }

    function 
    initPage() {
        if ( 
    document.step2 ) {
            
    checkFields();
        }
    }

    window.onload initPage
    per prima cosa devo dire che la pagina per la gestione degli errori, tale "checkError.php" viene richiamata con successo..
    il punto è che se c'è un errore il sistema se ne fotte e passa direttamente allo step successivo senza fermarsi e visualizzare l'errore.
    Lo step successivo quindi la action del form è "index.php?s=3" VOLUTAMENTE diverso dalla pagina di gestione errori per js per non avere problemi server side.

    Come faccio a dire al browser che se c'è l'errore, quindi se la pagina checkError.php mi ritorna una stringa, il form non effettua il submit e mi visualizzi l'errore sulla pagina???

    3000€ per chi mi aiuta..
    Questa volta, più che un voto.. è favoreggiamento.

  2. #2
    ah si.. un'altra cosa mi sono dimenticato, come controllo il submit del form??

    se guardate bene per ora lo script funziona ogni qualvolta viene trovato document.step2 mentre io dovrei farlo andare solo quando il form viene inviato.

    Ho gia provato:
    Codice PHP:
    document.step2.submit checkFields
    ma non ho avuto molta fortuna..
    Questa volta, più che un voto.. è favoreggiamento.

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non imposti il submit nel form e lo gestisci col resposeAjax
    if ( oHttpReq.readyState == 4 && oHttpReq.status == 200 ) {
    helpDiv = document.getElementById('help');
    if(oHttpReq.responseText == 'ok');
    document.nomeform.submit();
    else helpDiv.innerHTML = oHttpReq.responseText;
    }


    P.S. T'ho inviato un pvt con il numero della carta poste pay dato che era un problema facile facciamo solo 1000€

    P.S.S. L'integrazione non l'ho capita provaci ancora Sem!!!
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    :master: quindi mi devo creare anche la situazione in cui tutti i controlli vanno a buon fine.. va bene lo stesso se passo un TRUE al posto dell'Ok??

    L'integrazione è questa:
    Codice PHP:
    function initPage() {
        if ( 
    document.step2 ) {
            
    checkFields();
        }

    come vedi la funzione checkFields viene chiamata quando il browser trova un form che si chiama "step2", ma cosi facendo i campi del form sono ancora vuoti.. Io devo chiamare la funzione quando il form viene inviato per passare allo step successivo..

    understand???
    Questa volta, più che un voto.. è favoreggiamento.

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prima domanda direi di si, ma potrebbe anche essere no, l'unica è provare.
    Seconda domanda è chiaro che se tu la chiami al caricamento
    function initPage() {
    if ( document.step2 ) {
    checkFields();
    }
    }

    window.onload = initPage;
    e ovvio che i campi sono vuoti.
    Non sono + cosi ottimista non bastano + 1000 € forse aiuterebbe una demo pubblica.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    La prima chiamata mi serve per beccare il form giusto al momento giusto.. quello che non mi aggrada è che devo trovare il submit del bottone..

    avevo pensato ad una cosa del genere:
    Codice PHP:
    function initPage() {
        if ( 
    document.step2 ) {
            
    document.step2.sendStep2.onClick checkFields;
        }

    (sendStep2 è il nome del pulsante di submit)

    ma non mi ricordo se funziona non mi pareva..

    Poi c'ho ancora un problema.. se io clicco il submit, il form passa comunque alla action del form stesso, lato server.. è non è bene!! se c'ho un errore si deve fermare, non deve eseguire la submit!!!!

    se dici ti mando il link alla demo in pvt per provare
    Questa volta, più che un voto.. è favoreggiamento.

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Boh.... Io non ti seguo, pertanto lascio, ti auguro di trovare qualcuno di + intuitivo che ti possa aiutare io quello che ho potuto fare l'ho fatto.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Figurati Andrea grazie per quel che hai fatto

    ieri sera ho avuto l'illuminazione e ho scoperto il problema.. il problema è che il sistema funziona ovviamente.

    Diciamo che il problema è proprio il submit perchè è un submit.. Lo scopo di quel pulsante è di inviare i dati del form all'action nel metodo impostato dal method del form.. e lo fa egregiamente..

    Per avere il controllo sui dati basterebbe che io cambiassi il submit in semplice button, ed associando un'evento onClick su quel button javascript esegue i controlli e alla fine effettua l'evento submit.. Ovvio direi..

    Ma io non posso fare in questo modo quindi mi sa che devo rivedere un'attimo le cose.. :master:
    Questa volta, più che un voto.. è favoreggiamento.

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.