Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472

    [javascript e php] controllo di dati di un form inseriti come array

    E' molto semplice la cosa che dovrei fare ma di javascript mastico poco....

    Ho un form tipo questo
    codice:
    <form name="frm" onSubmit="return validateForm();"
    <?php for ($jj=1;$jj<=$a;$jj++) 
        { ?><input type="text" name="prob[<?php echo $jj;?>]" onchange="conteggio()"><?php
        } ?>
    </form>
    quindi in pratica ponendo che a=3 io avrò l'array prob con valori immessi poniamo:
    $a[1]=4;
    $a[2]=8;
    $a[3]=7;

    A me occorrerebbe controllare in javascript
    - nella funzione validateForm che tutti i valori immessi siano compresi fra un minimo e un massimo
    - nella funzione conteggio dovrei fare la somma a mano a mano che vengono inseriti di tutti i valori immessi

    A suo tempo l'avevo fatto ma erano solo 3 valori e mi era tornato meglio farli come variabili distinte ma ora (non sapendo quanto varrà "$a" devo per forza metterlo in array.

    codice:
    function validateForm()
    {
         pa = document.frm.pa.value;
         pb = document.frm.pb.value;
         pc = document.frm.pc.value;     
      if ((pa=="") || (isNaN(pa)) || (pa=="undefined") || (pa != parseInt(pa)) || (pa<1) || (pa>99998)) 
               {
               alert("La probabilità di a non è espressa in modo corretto!");
               document.frm.pa.value="";
               document.frm.pa.focus();
               return false;
               }
    .....+e così via per gli altri 2+++....
    }
    E l'altro era
    codice:
    function conteggio()
    { somma=0;
      pa=document.frm.pa.value;
      pb=document.frm.pb.value;
      pc=document.frm.pc.value;
      if (pa != 0) {somma=somma+eval(pa);}
      if (pb != 0) {somma=somma+eval(pb);}
      if (pc != 0) {somma=somma+eval(pc);}
     
      document.frm.somma.value=somma;
    }
    In pratica vorrei sapere come dovrei modificare questi 2 codici di controllo javascript per renderli compatibili con un array...

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    qualcosa del genere forse?

    codice:
    function conteggio()
    { 
      somma=0;
      i=0;
      while(window.frm["prob"+i] != undefined){
      if (window.frm["prob"+i].value != "") {somma+=new Number(window.frm["prob"+i].value);}
    i++;
     }
      document.frm.somma.value=somma;
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    La soluzione dovrebbe essere più semplice di quanto si pensi...solo che di javascript non so quasi nulla...diciamo che ci faccio solo i controlli dei form e poco più...

    Non c'è bisogno di utilizzare un while perché la lunghezza dell'array la recupero dal form... avevo provato una cosa del genere ma naturalmente non funziona...

    codice:
    function conteggio()
    { somma=0;
       ii=1;
      totalea=document.frm.totalea.value;
      valore=0;
      prob=new Array;
         for (ii=1;ii<=totalea;ii++)
         {   
               if (document.frm.prob[ii].value != "") 
                       { valore=document.frm.prob[ii].value;
                          somma=somma+eval(valore);
                       }
                
          }
    document.frm.somma.value=somma;
    }
    Intanto semplicemente, ho guardato un po' in rete ma non riesco a trovare la soluzione...come si fa a passare un valore di un array in javascript ?
    Avevo provato semplicemente (questo ad esempio per recuperare il valore di prob[1] così ma non funziona...
    codice:
    prob=new Array;
    prob[1]=document.frm.prob[1].value;

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    elementi del form con identico name rientrano in un array
    se si chiamassero tutti "prob" prob[1] sarebbe il secondo

    ma chiamandosi prob[n] sono tutti indipendenti
    usa la sintassi document.frm.elements['prob['+n+']'].value;

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Perfetto Xinod...è proprio questo che mi mancava... 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.