Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: form dinamico

  1. #1
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400

    form dinamico

    Ciao sono stato "rispedito" qui dal forum ASP perchè mi hanno detto di chiedere aiuto presso il forum Javascript.

    Ho questo form dinamico in ASP:

    codice:
    Do while NOT Rs.EOF
    
       Response.Write "<form method=""post"" action=""verifica.asp?ID="& Rs("ID") &""">"
    
       Response.Write "<td align=center><input type=""checkbox"" name=""VERIFICA"" value=""checkbox"" onClick=""if(this.checked)if(confirm('Confermi?')){submit()}else{return false;}""></td>"
    
       Response.Write "</form>"
    
    Rs.MoveNext
    Loop
    Mettendo il flag nel campo checkbox si invia singolarmente al form il valore di Rs("ID") alla pagina verifica.asp

    E' possibile far partire il form dopo aver fleggato magari non meno di tre checkbox e quindi tre valori di Rs("ID") ?

    Grazie

  2. #2
    Utente bannato
    Registrato dal
    Aug 2007
    Messaggi
    92
    Dovresti aumentare una variabile ogni qual volta che una checkbox venga spuntata:

    <input type="checkbox" onchange="if(this.checked){chx += 1}else{chx -=1}" onclick="if(this.checked && chx >= 3){if(confirm('Confermi?')){submit()}else{return false;}}" />

    In questo modo:
    1. quando viene cambiato il valore della casella(onchange)il valore di chx viene aumentato di 1 se la casella è spuntata, e diminuito se non lo è(assumendo che chx sia inizializzata a 0 e che tutte le checkboxes inizino non spuntate);
    2. quando viene cliccata la checkbox, se essa è spuntata e chx è uguale o maggiore a 3(quindi ci sono almeno 3 caselle spuntate)l'utente visualizza un messaggio di conferma, che se riceve "OK" invia il form.

  3. #3
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Grazie ma quando metto il flag, risponde con Errore 'chx' non è definito...


    <input type="checkbox" name="VERIFICA" value="checkbox" onchange="if(this.checked){chx += 1}else{chx -=1}" onclick="if(this.checked && chx >= 3){if(confirm('Confermi?')){submit()}else{return false;}}" />

  4. #4
    Utente bannato
    Registrato dal
    Aug 2007
    Messaggi
    92
    Si ovvio, devi definire la variabile chx prima del form, in Javascript.

    var chx = 0;

  5. #5
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Shadd
    Si ovvio, devi definire la variabile chx prima del form, in Javascript.

    var chx = 0;
    OK, ho scritto così:

    codice:
    <script language="JavaScript">
     var chx = 0;
    </script>
    
    <%
    
    Do while NOT Rs.EOF
    
       Response.Write "<form method=""post"" action=""verifica.asp?ID="& Rs("ID") &""">"
    
       Response.Write "<td align=center><input type=""checkbox"" name=""VERIFICA"" value=""checkbox"" onClick=""if(this.checked)if(confirm('Confermi?')){submit()}else{return false;}""></td>"
    
       Response.Write "</form>"
    
    Rs.MoveNext
    Loop 
    
    %>
    Ma la pagina verifica.asp invece di prendere tutti e quattro gli ID contenuti nel checkbox del form dinamico prendo solo l'ultimo....

  6. #6
    Utente bannato
    Registrato dal
    Aug 2007
    Messaggi
    92
    Non conoscendo un c puntato di asp, non so cosa fai con il codice sopra. Dalle tue parole sembra che ci siano in realtà più campi checkbox, mentre nel codice ne vedo solo uno. È così o hai tagliato qualche pezzo?

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Stai creando tanti form diversi quanti record hai nella tabella.... come puoi pretendere che piu' di uno di essi venga spedito contemporaneamente al server in qualunque momento? devi creare un unico form e mettere al suo interni i checkbox, quindi:
    codice:
    <script>
    function conta(obj) {
      f = obj.form;
      q = 0;
      for (var i=0;i<f.elements.length;i++) {
        q += (f.elements[i].checked) ? 1 : 0 ;
      }
      if (q>2) f.submit();
    }
    </script>
    <%
    Response.Write "<form method=""post"" action=""verifica.asp"">"
    Do while NOT Rs.EOF
    
       Response.Write "<td align=center><input type=""checkbox"" name=""ID"" value="""& Rs("ID") &""" onClick=""conta(this)""></td>"
    
      Rs.MoveNext
    Loop   
    Response.Write "</form>"
    %>
    Sul server riceverai tutti i valori selezionati all'interno del campo ID separati da virgole.

    ciao

    ps: col metodo descritto sopra il form partira' automaticamente alla spunta del terzo checkbox, se, come mi e' parso di capire, non e' esattamente quello che cerchi... dammi un segno
    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

  8. #8
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Ti ringrazio, va bene.

    Ma se aggiungo la condizione if Rs("VERIFICA") = 1 then il form parte al primo flag sul campo checkbox... posso risolvere ?

    codice:
    <script>
    function conta(obj) {
      f = obj.form;
      q = 0;
      for (var i=0;i<f.elements.length;i++) {
        q += (f.elements[i].checked) ? 1 : 0 ;
      }
      if (q>2) f.submit();
    }
    </script>
    
    .......
    
    Response.Write "<form method=""post"" action=""verifica.asp"">"  
                    
    
    Do while NOT Rs.EOF
    
    if Rs("VERIFICA") = 1 then
                       Response.Write "<td align=center><input type=""checkbox"" name=""ID"" value="& Rs("ID") &" checked disabled></td>"
    
         else
                                                           
                       Response.Write "<td align=center><input type=""checkbox"" name=""ID"" value="& Rs("ID") &" onClick=""conta(this)""></td>"
    
    end if                   
                       
                       
    Rs.MoveNext
    Loop 
    End if
    
    Response.Write "</form>"

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    La tua aggiunta non modifica il funzionamento dello script... se si presenta un difetto puo' dipendere dal resto della pagina, posta un link.

    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

  10. #10
    scusate ho sbagliato forum.

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.