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

    Parametro da php che blocca submit tramite Javascript

    Salve.
    Premetto che non ho praticamente conoscenza di Javascript.

    Sto lavorando in PHP ad una pagina nella quale alcuni pulsanti implementati fanno capo a script esterni che vanno ad editare i dati cliccati.

    Trattandosi di un sistema cui hanno accesso diversi livelli di utenza, ci sarà a database un sistema di gestione dei permessi creato ad hoc e curato da una function che mi ritornerà true se l'azione è permessa, false se non è permessa.

    Ho implementato in questo form di prova un sistema di alert banale, al termine del quale il bottone comunque opera il submit dei dati:

    Codice PHP:
    <form name ="login" action="login.php" method="post">                        
          <
    label>USERNAME<input type="text" name="username"></label><br>
          <
    label>PASSWORD<input type="password" name="password"></label>

                <
    script type="text/javascript">
                function 
    mostraMessaggio() {
        
    window.alert("Non hai i permessi per questa sezione");
        }
    </script>
                <input type="submit" name="login" onclick="mostraMessaggio()" value="INVIA">
            </form> 
    Quello che mi serve di capire è se c'è un sistema per disabilitare il submit dei dati una volta che è uscito l'alert.

    O in alternativa...c'è modo di passare tramite PHP il true/false a Javascript per fare in modo che il bottone venga caricato senza la funzione di action o quella collegata?

    Grazie mille a chiunque mi aiuterà
    Ultima modifica di Korenaar; 12-11-2014 a 14:11

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Togli onclick dal tasto submit e aggiungi onsubmit="return mostraMessaggio()" nel tag form
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    mmm no mi sa che manca qualcosa nella funzione perchè con onsubmit non compare proprio l'alert.

    EDIT: no, avevo fatto una stupidaggine io. Compare la finestra come prima, ma comunque poi esegue il submit...

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Chiaramente la funzione di default è impostata in true (vero) se esegui solo un alert e non la in posti in false una volta chiuso l'avviso il submit viene eseguito
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Chiaramente la funzione di default è impostata in true (vero) se esegui solo un alert e non la in posti in false una volta chiuso l'avviso il submit viene eseguito
    Chiaro, hai ragione. Ultima domanda e ti ringrazio molto: tecnicamente posso solo rendere il tasto disabled (quindi non cliccabile) o posso fare in modo che sia cliccabile ma con eliminazione del submit?

    Sei stato gentilissimo!

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Volendo si può forzare il submit da js all'incirca cosi:
    codice:
    
    <form name ="login" action="login.php" method="post" onsubmit="return false;">                        
          <label>USERNAME<input type="text" name="username"></label><br>
          <label>PASSWORD<input type="password" name="password"></label>
    
                <script type="text/javascript">
                function mostraMessaggio() {
        window.alert("Non hai i permessi per questa sezione");
        }
    </script>
                <input type="submit" name="login" onclick="mostraMessaggio()" value="INVIA">
            </form>
    
    
    <script>
    function mostraMessaggio(){
    if(qui-esegui-i-controlli){
    alert("errore....")
    }else{
    document.login.submit()
    }
    }</script>
    
    ripristini onclick e blocchi il submit a false (così il form non viene eseguito) se i controlli sono corretti forzi il submit()
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Volendo si può forzare il submit da js all'incirca cosi:
    codice:
    
    <form name ="login" action="login.php" method="post" onsubmit="return false;">                        
          <label>USERNAME<input type="text" name="username"></label><br>
          <label>PASSWORD<input type="password" name="password"></label>
    
                <script type="text/javascript">
                function mostraMessaggio() {
        window.alert("Non hai i permessi per questa sezione");
        }
    </script>
                <input type="submit" name="login" onclick="mostraMessaggio()" value="INVIA">
            </form>
    
    
    <script>
    function mostraMessaggio(){
    if(qui-esegui-i-controlli){
    alert("errore....")
    }else{
    document.login.submit()
    }
    }</script>
    
    ripristini onclick e blocchi il submit a false (così il form non viene eseguito) se i controlli sono corretti forzi il submit()

    Molto molto interessante. In pratica lì dove metto i controlli potrei fare solo il check della famosa variabile di controllo proveniente da php...anche perchè non credo di poter fare controlli a DB tramite Javascript.

    Bellissimo esempio!

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.