Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di lau.l
    Registrato dal
    Feb 2004
    Messaggi
    186

    funzione php nel codice Javascript

    Salve a tutti!!
    Il mio problema è questo: ho un form al quale sull'evento OnSubit ho applicato una funzione javascript che mi controlla se i campi del form sono esatti e se lo sono mi applica una funzione php che incrementa il valore di un contatore tramite una query nel database.
    Il mio problema è che mi incrementa il contatore anche se non clicco sul tasto submit perchè, se clicco sul tasto indietro di explorer,non avendo clicato sul tasto submit, controllando il contatore questo viene incrementato lo stesso.....
    Qualcuno può darmi un suggerimento...???

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Nel tuo caso la sola descrizione non basta per individuare il problema... posta la pagina cosi' come la riceve il browser

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it L'avatar di lau.l
    Registrato dal
    Feb 2004
    Messaggi
    186
    questo è il JS


    <script Language="JavaScript">
    function sms_Valid(TheForm) {

    theForm=document.smsArubaForm;
    bono=true;

    prefiss=theForm.smsprefcell.selectedIndex;
    if ( prefiss==0 | prefiss==1 | prefiss==14 | prefiss==21 | prefiss==26 | prefiss==31 ) {
    alert("Seleziona prefisso cellulare.");
    theForm.smsprefcell.focus();
    bono=false;
    }
    if (bono==true & theForm.smsdestinatario.value.length < 1) {
    alert("Attenzione: inserire numero cellulare Destinatario!");
    theForm.smsdestinatario.focus();
    bono=false;
    }
    if (bono==true & theForm.smsdestinatario.value.length < 6) {
    alert("Attenzione: lunghezza numero cellulare Destinatario non valida!");
    theForm.smsdestinatario.focus();
    bono=false;
    }
    if (bono==true & theForm.smsdestinatario.value.length > 7) {
    alert("Attenzione: numero cellulare Destinatario troppo lungo!");
    theForm.smsdestinatario.focus();
    bono=false;
    }
    if (bono==true) {
    var checkOK = "0123456789";
    var checkStr = theForm.smsdestinatario.value;
    var allValid = true;
    for (i = 0; i < checkStr.length; i++)
    {
    ch = checkStr.charAt(i);
    for (j = 0; j < checkOK.length; j++)
    if (ch == checkOK.charAt(j))
    break;
    if (j == checkOK.length) {
    allValid = false;
    break;
    }
    }
    if (!allValid) {
    alert("Inserire solo numeri nel campo Numero Cellulare.");
    theForm.smsdestinatario.focus();
    bono=false;
    }
    }
    if (bono==true & theForm.smstesto.value.length < 1) {
    alert("Attenzione: inserire testo messaggio!");
    theForm.smstesto.focus();
    bono=false;
    }

    if (bono==true){ <?
    $q="SELECT numero_sms_inviati FROM sms WHERE username='$username'";
    $r=mysql_query($q) or die ('errore query 1');
    $dr=mysql_fetch_assoc($r);
    $contatore=$dr[numero_sms_inviati] + 1;
    $q_2="UPDATE sms SET numero_sms_inviati=$contatore WHERE username='$username'";
    $r_2=mysql_query($q_2) or die ('errore query 2');
    ?>}
    /*if (theForm.smstesto.value.indexOf('"') != -1) {
    alert('Il carattere " non è ammesso.')
    return false
    }*/

    if (bono==true) {
    fin=window.open("about:blank","fin","width=400,hei ght=300");
    timer=setTimeout("return true",200);

    location.replace("sms.php?username=<? print $username;?>")}
    else return false;

    }
    </script>

    e questo è il form:

    <form method="POST" action="inviasmsdomini.asp" onSubmit="return sms_Valid(this)" name="smsArubaForm" target="fin">
    con relativi campi di input...

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    la funzione PHP che hai insererito all'interno del javascript viene sempre eseguita sul server prima che la pagina arrivi al client... tu vorresti che venisse eseguita solo se il controllo javascript e' positivo... non e' questo il modo di procedere... devi ripassare la filosofia del client-server e distinguere meglio chi e quando esegue gli script.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it L'avatar di lau.l
    Registrato dal
    Feb 2004
    Messaggi
    186
    questo lo avevo capito....ma non puoi suggermi un modo per risolvere la situazione???

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    La soluzione l'avrei... ma non si puo' spiegare in poche parole ed in questa sede

    Intanto ti fornisco lo spunto... si chiama Remote Scripting, e puoi trovare info ed esempi sul sito MSDN

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Utente di HTML.it L'avatar di lau.l
    Registrato dal
    Feb 2004
    Messaggi
    186
    non è che sia stato un grande aiuto...cmq ora vado a vedere...grazie...

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.