Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di dvd810
    Registrato dal
    Mar 2009
    Messaggi
    157

    variabile dinamica all'interno di un ciclo while

    Ciao a tutti.
    Espongo subito il mio quesito.

    Con un ciclo while ho formattato i dati di un database all'interno di un "box" (div).
    Così facendo mi trovo 41 "box" con valori numerici dinamici.
    All'interno dei box, voglio inserire un input type text, solo valori numerici e servirà a moltiplicare i valori già presenti estratti dal db. In fine un pulsante submit.
    Codice PHP:
    <form method=\"post\" action=\"#\"> 
    <input type=\"text\" name=\"valore\" value=\"
    $quantita\" /> 
    <input type=\"submit\" name=\"calcola\" value=\"calcola\" />
    </form> 
    Il primo problema è che se inserisco l'input all'interno del while, ogni volta che inserisco il valore nel primo box, verrà ripetuto automaticamente in tutti gli altri 40 box.
    Quindi mi chied,o come fare?

    Secondo, ho ritenuto non necessario inserire il valore di input nel db, raccogliendolo in una variabile in questo modo:
    Codice PHP:
    if(isset($_POST['calcola'])){ 
    $quantita=$_POST['valore']; 
    }else{
    $quantita=1; } 
    Può andare bene anche così, o è necessario inserire nel db?, tenendo presente che questo valore è temporaneo, e ha il solo scopo di moltiplicare gli altri valori estratti dal db.

    Spero di essermi spiegato correttamente e vi ringrazio anticipatamente.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    per l'ultima parte: se usi una variabile temporaneamente nei calcoli puoi benissimo metterla solo nel codice, poi dipende un po' dall'uso in generale, ma così va bene

    per la prima parte: non ho ben capito cosa si ripete... forse sbagli nel nominare i campi input... dovresti dare 41 nomi diversi (attributo "name") se devi gestirli separatamente...

  3. #3
    Utente di HTML.it L'avatar di dvd810
    Registrato dal
    Mar 2009
    Messaggi
    157
    è proprio li il problema, non so come attribuire un nome diverso, in quanto i 41 box vengono generati automaticamente dal ciclo while, in base ai rows della tabella...

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    qualcosa come...

    Codice PHP:
    ...
    while (...) {
      ...
      
    $valore = ...; // qui leggi il valore da impostare nel tag
      
    print '<input type="text" name="valore[]" value="'.$valore.'" />';
      ...
    };
    ... 
    è un esempio... così crei una voce in $_POST che è un array dei valori

  5. #5
    Utente di HTML.it L'avatar di dvd810
    Registrato dal
    Mar 2009
    Messaggi
    157
    mmm non mi è molto chiaro.
    Incollo il codice che ho creato fino a questo momento.

    Codice PHP:
    // ATTRIUISCO IL VALORE DELL'INPUT ALLA VARIABILE, SOLO NEL CASO IN CUI VENGA CONFERMATO IL SUBMIT, IN CASO CONTRARIO IL VALORE SARA' PARI A "1"
    if(isset($_POST['calcola'])){
     
    $quantita=$_POST['input_numero']; 
    }else{
    $quantita=1; } 

    // ATTRIBUISCO I VALORI ASTRATTI DAL DB ALLE RELATIVE VARIABILI 
    $valore1 $row_due['db_valore1']; 
    $valore2 $row_due['db_valore1']; 
    $valore3 $row_due['db_valore1']; 
    $valore4 $row_due['db_valore1']; 
    $valore5 $row_due['db_valore1']; 

    //STAMPO I VALORI ALL'INTERNO DI UN DIV FORMATTATO CON CSS (inizio box)
    "<div class=\"box_tabella\"> 
    <div class=\"sup\"> 
    <div class=\"dati\"> 
    <div class=\"dati_cont\">Unit&aacute; "
    .$row_due['db_tipologia']." ".$row_due['db_utilita']."</div> 
    <div class=\"dati_cont\">"
    .$row_due['db_tipo']."</div> 
    <div class=\"dati_cont\">Costo $ "
    .$row_due['db_prezzo']."</div> 
    </div> 
    <div class=\"calcoli\"> 
    //------------------------------form CALCOLA --------------------
    <form method=\"post\" action=\"#\"> 
    <input type=\"text\" name=\"input_numero\" value=\"
    $quantita\" /> 
    <input type=\"submit\" name=\"calcola\" value=\"calcola\" /> 
    </form> 
    //------------------------------form CALCOLA ------------------------------ 
    </div> 
    </div>
     
    <div class=\"inf\"> 
    <table> 
    <tr> 
    <td>"
    .$valore1."</td> 
    <td>"
    .$valore2."</td> 
    <td>"
    .$valore3."</td> 
    <td>"
    .$valore4."</td> 
    <td>"
    .$valore5."</td> 
    </tr> 
    </table> 
    </div> 
    </div>
     "
    ;
    //(fine box) 
    Esempio di ciò che devo ottenere:




    Il mio obbiettivo è poter inserire un valore nell'inputbox e usarlo come moltiplicatore per gli altri valori presenti nel singolo box.
    Vorrei anche avere un solo pulsante submint "Calcola", che agisca su tutti i valori presenti in tutte e 41 box

    GRZ DELL'AIUTO

  6. #6
    Utente di HTML.it L'avatar di bode
    Registrato dal
    Feb 2007
    Messaggi
    304
    Quello che ti è stato suggerito da eiyen per me è il metodo migliore...se non conosci l'uso degli array dai una lettura qui http://php.html.it/guide/lezione/2651/gli-array/. Per il tasto calcola unico, basta toglierlo dal ciclo while e metterlo subito dopo la chiusura del ciclo stesso

    EDIT nel tuo caso
    Codice PHP:
    <input type=\"text\" name=\"input_numero[]\" value=\"$quantita\" />  
    <input type=\"submit\" name=\"calcola\" value=\"calcola\" /> 
    avrai un array di 41 elementi quindi da indice 0 a indice 40

    $elemento1=$_POST['input_numero[0]'];
    $elemento2=$_POST['input_numero[1]'];
    ...
    $elemento41=$_POST['input_numero[40]'];

    ovviamente ti conviene usare un ciclo per estrarli tutti con un banalissimo contatore

    for ($i=0;$i<=40; $i++)

  7. #7
    Utente di HTML.it L'avatar di dvd810
    Registrato dal
    Mar 2009
    Messaggi
    157
    ok, ci provo, grz a tutti.

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.