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

    campo form incrementabile

    Ciao a tutti! Sono nuovissima di questo forum, e ringrazio già da adesso tutti quelli che mi rispoderanno

    Ecco il mio quesito:

    in una pagina php ho il campo di un form, chiamato PUNTIRIM, che inizialmente prende il valore dal db tramite variabile $PUNTI.
    Questo campo deve venire incrementato o decrementato da altre righe del form create da un ciclo while di questo tipo:

    <? while ($valore=mysql_fetch_array($query)){
    $ID=$valore["ID"];
    $ABILITA=$valore["ABILITA"];
    $GRADI=$valore["GRADI"];
    ?>



    <?=$ABILITA?>
    <input type="text" name="<?=$ID?>" value="<?=$GRADI?>" id="<?=$ID?>">
    <input type="button" value=" - " onClick="javascript:this.form.<?=$ID?>.value--;" class="tChiaro">
    <input type="button" value=" + " onClick="javascript:this.form.<?=$ID?>.value++;" class="tChiaro">
    </p>


    Ogni volta che l'utente aumenta il campo $ID, il campo PUNTIRIM deve sommare
    o detrarre il valore presente in $GRADI; questo per tutte le righe del ciclo.

    Con un Submit, il valore finale di PUNTIRIM viene trasmesso con un update al db.

    Come posso fare per dire a PUNTIRIM di aggiornarsi ogni volta che vengono cliccati
    i tasti + o - che modificano i $GRADI?

    Spero di essere stata chiara! Io mi ci sto spaccando la testa

  2. #2
    mmm piuttosto che fare le cose sulla stessa riga, scrivi una riga in più di codice...


    Codice PHP:
    <? while ($valore=mysql_fetch_array($query)){
    $ID=$valore["ID"];
    $ABILITA=$valore["ABILITA"];
    $GRADI=$valore["GRADI"];
    ?>

    <script type="text/javascript">
    function addToFieldForId(id)
    {
       var value = parseInt(document.getElementForId(id).value);
       value++;
       document.getElementForId(id).value = value;
    }

    function subtractToFieldForId(id)
    {
       var value = parseInt(document.getElementForId(id).value);
       value--;
       document.getElementForId(id).value = value;
    }
    </script>



    <?=$ABILITA?>
    <input type="text" name="<?=$ID?>" value="<?=$GRADI?>" id="<?=$ID?>">
    <input type="button" value=" - " onClick="subtractToFieldForId('<?=$ID?>');" class="tChiaro">
    <input type="button" value=" + " onClick="addToFieldForId('<?=$ID?>');" class="tChiaro">
    </p>
    Comunque se l'Id è un numero potrebbero esserci dei problemi, perchè a JS non piacciono i campi con Id e name numerici, mettici una lettera davanti. tipo:

    Codice PHP:


    <?=$ABILITA?>
    <input type="text" name="n<?=$ID?>" readonly="readonly" value="<?=$GRADI?>" id="n<?=$ID?>">
    <input type="button" value=" - " onClick="subtractToFieldForId('n<?=$ID?>');" class="tChiaro">
    <input type="button" value=" + " onClick="addToFieldForId('n<?=$ID?>');" class="tChiaro">
    </p>
    HO anche messo l'attributo readonly al input text perchè se crei i bottoni per manipolarlo mi sembra inutile permetterci di scriverci (tra l'altro così previeni che l'utonto di turni ci infili una lettera facendo crashare lo script...)

  3. #3
    Sì, direi che il readonly era d'obbligo ^^

    Grazie per lo script!

    L'unico dubbio, come fa il campo PUNTIRIM ad aggiornarsi con le modifiche di $ID?

    In pratica l'utente puo' utilizzare punti fino a che PUNTIRIM non arriva a 0, e ci mettero' un controllo in tal senso: ma come aggancio il collegamento dei due campi?

    Grazie ancora ^^

  4. #4
    fai così:

    all' <input type="text" name="<?=$ID?>" value="<?=$GRADI?>" id="<?=$ID?>"> aggiungi la class="SinglePunti"

    <input type="text" class="SinglePunti" name="n<?=$ID?>" value="<?=$GRADI?>" id="n<?=$ID?>">

    poi fai:
    Codice PHP:
    function aggiornaPUNTI()
    {
       var 
    all document.getElementsByTagName('input');
       var 
    punti 0;
       for(
    0all.lengthi++)
       {
          if(
    all[i].className.indexOf('SinglePunti') >= 0)
          {
              
    punti+= intVal(all[i].value);
          }
       }
       
    document.getElementById('PUNTIRIM').valuepunti;

    Questa funzione la chiami alla fine di addToFieldForId e alla fine di subtractToFieldForId

  5. #5
    ..grazie. Grazie grazie grazie, non so che altro dirti!

    ..oltre che devo studiarmi un po' meglio il javascript

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.