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

    Aiuto con multi checkbox

    Salve a tutti. Sono nuovo del forum e anche di javascript, ma sto imparando molte cose.
    Dovrei realizzare una pagina con dei controlli checkbox, ho trovato vari script ma non riesco a collegarli insieme in una funzione unica. Il problema è questo : da un database ricavo il valore del checkbox e lo passo alla pagina html, un paio di questi check mi abilitano menù a discesa se spuntati, tutti mi devono fare la somma dei valori (esempio: i vari servizi spuntati costano ai clienti un tot), i clienti possono variare i check ancora non spuntati e tutto va al database. Riesco a fare i singoli passaggi ma non tutti insieme, le cose si complicano. Posterò a breve il codice. Qualcuno ha già risolto qualcosa prima di me?
    Grazie
    Daniele

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Benvenuto nel forum

    Reinventarsi tutto, col rischio di fare qualcosa che non rispecchia le tue esigenze, richiede impegno aggiuntivo... molto meglio se posti il codice a cui sei giunto finora, ancora meglio un link alla pagina pubblicata

    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

    Porblema checkbox

    Posto il codice

    <script type="text/javascript">

    function Somma(f) {
    myForm=f
    var sum = 0;
    var elem;
    for(var i=0;i<myForm.elements.length;i++) {

    elem = myForm.elements[i];

    if ((elem.type == "checkbox") && (elem.checked == true)) {

    if (elem.id == 'game6' )

    {

    qq=qq+1;
    if (qq % 2 != 0){
    document.getElementById('game6').innerHTML="Attivato"
    FormAggiungi.campo2.disabled=false;
    }

    }
    }

    document.getElementById('costo').value = sum.toFixed(2);

    }

    </script>
    Il problema è che l'Inner mi dà errore, anche se cambio id in name o altro
    Codice html :
    <td>
    <input type="checkbox" onclick="Somma(this.form)" name="chk7" value="100" id='game6'>
    <span id='game6' value="100.00" name="chk7" >
    <font color="#999999">Disattivato</font></span>
    <select name="campo2" disabled="disabled">
    <option>Opzione 1</option>
    <option selected>Opzione 2</option>
    </select</td>
    <td>
    <input type="checkbox" name="chk1" id='game0' value="10.00" onClick="Somma(this.form)">
    <input type="checkbox" name="chk2" id='game1' value="10.00" onClick="Somma(this.form)">
    </td>
    ecc..
    <p align="center"> Totale <input type="text" id="costo" value="" size="10" readonly style="text-align:right"> ,00 euro</td>

    Con vari tentativi la somma totale è corretta, ma o non mi attiva il menu a discesa e non mi fa la somma o mi dà errore di "proprietà non supportata dall'oggetto"
    Ho provato anche a semplificare, non mettendo il menu a scomparsa. Se ricavo i check dal database, posso poter variare quelli non spuntati ma se li disabilito, facendo l'update al db me li azzera scrivendo solo quelli nuovi.
    Grazie

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Per forza gli id devo essere univoci, mentre tu assegni lo stesso id ad un checkbox e ad uno span, modifica quest'ultimo ad es: (<span id="avviso_game6"></span>)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5

    Ancora piccoli problemi

    Grazie Andrea per la tua dritta. In effetti funziona cambiando l'id come dicevi tu.
    codice :

    <script type="text/javascript">
    function Costo(f) {
    myForm=f
    var sum = 0;
    var qq = 0;
    var gn, elem;

    for(var i=0;i<myForm.elements.length;i++) {
    elem = myForm.elements[i];
    if ((elem.type == "checkbox") && (elem.checked == true)) {
    if (elem.id == 'game8') {
    qq=qq+1;

    if (qq % 2 != 0){
    document.getElementById('okgame6').innerHTML="Attivata"
    FormAggiungi.campo2.disabled=false;
    }
    else {
    document.getElementById('okgame6').innerHTML="<fon t color=#999999>Disattivata</font>";
    FormAggiungi.campo2.disabled=true;
    }
    }

    sum += Number(elem.value);
    }
    }
    document.getElementById('costototale').value = sum.toFixed(2);
    }
    </script>
    Sorge un piccolo problema : non mi disattiva al secondo passaggio sul check 'game8' e con varie prove, infatti al secondo click dovrebbe diventare 'false' ma non riesco a farglielo capire come vorrei, il resto funziona ( la somma e tutto).
    Grazie ancora per la dritta.
    Tenterò qualche altra prova.
    Daniele
    P.S.: posterò più avanti il problema con i check e il database.

  6. #6

    Altri problemi col checkbox

    Il presente script per fare la somma di checkbox ed abilitare due menu di scelta :

    <script type="text/javascript">

    function Costo(f) {
    myForm = f
    var sum = 0;
    var elem;

    for(var i=0;i<myForm.elements.length;i++) {
    elem = myForm.elements[i];
    if (elem.type == "checkbox") {

    if ((elem.id == 'art0') && (elem.checked == true)) {
    document.getElementById('ok2Art').innerHTML="2a Articolo attivato";
    document.getElementById('ok3Art').innerHTML="3a Articolo attivato";
    FormAggiungi.txtArticolo2.disabled=false;
    FormAggiungi.txtArticolo.disabled=false;
    }
    if ((elem.id == 'art0') && (elem.checked == false)) {
    document.getElementById('ok2Art').innerHTML="<font color=#999999>2a Articolo disattivato</font>";
    document.getElementById('ok3Art').innerHTML="<font color=#999999>3a Articolo disattivato</font>";
    FormAggiungi.txtArtcolo2.disabled=true;
    FormAggiungi.txtArticolo3.disabled=true;
    }
    if (elem.checked == true) { sum += Number(elem.value); }
    }
    }
    document.getElementById('costototale').value = sum.toFixed(0);
    }
    </script>

    Lo script di sopra mi funzione perfettamente se voglio inserire un nuovo cliente che sceglie per la prima volta alcuni articoli. Vorrei però una volta registrati i dati nel DB access richiamarli per eventualmente aggiungerne altri che non erano già spuntati, ma usando lo stesso script (variando alcuni parametri) non funziona.
    Posto il codice HTML per esempio :

    <td width="13%"><font size="2"><input type="checkbox" name="txtart1" id='art1' value="10" onclick="Costo(this.form)"
    <% If txtart1 = "Sì" or txtart1 = "ok" Then %> checked disabled="disabled" <% end if %> >Articolo Uno 10
    </TD>

    <td width="35%"><font size="2"><input type="checkbox" name="txtArt2" id='art2' value="7" onclick="Costo(this.form)"
    <% If txtArt2 = "Sì" or txtArt2 = "ok" Then %> checked disabled="disabled" <% end if %> >Articolo 2
    </TD></tr>
    ecc.......
    Cioè :
    prendendo un articolo dal DB se questo è già selezionato deve comparire la spunta e il cliente non lo può più deselezionare, ma anche non deve rientrare nella somma del totale "Costo", ovvio che quelli già non spuntati li può scegliere adesso e clikkare facendo una nuova somma. Cosa che non sono riuscito ancora a fare.
    Potete aiutarmi?
    Grazie
    Daniele

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Per me è un operazione da gestire completamente lato server
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8

    Sempre checkbox

    Potresti darmi un esempio?
    Grazie
    Daniele

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.