Pagina 3 di 4 PrimoPrimo 1234 UltimoUltimo
Visualizzazione risultati 61 fino 90 di 92

Discussione: $_POST array di valori array....

  1. #61
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Uhm.. Ho provato a mettere tre echo per vedere se effettivamente i valori li prendeva... Ma non si vede nulla... Se tolgo [$i] dalle variabili mi dice, giustamente, ARRAY ARRAY ARRAY. Se metto[$i] invece non mi da nulla... ne erorri ne valori... Ho provato anche a visualizzare i singoli ma niente...

  2. #62
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    Usa direttamente
    Codice PHP:
    $_POST['quantita'][$i]
    Ciao!

  3. #63
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    non ho capito... gli do direttamente l'indice alle variabili post??

  4. #64
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    Sì, come ti ho scritto sopra.

    Ciao!

  5. #65
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Ho provato cosi, ma ottengo lo stesso risultato... non vedo i valori...

    Codice PHP:
    <?php
    if(isset($_POST['subtotale'])){
    $prezzosconto=$_POST['prezzosconto'][$i];
    $prezzo=$_POST['prezzo'][$i];
    $scontoperc=$_POST['scontoperc'][$i];
    $scontoval=$_POST['scontoval'][$i];
    $quantita=$_POST['quantita'][$i];
    $descrizione=$_POST['descrizione'][$i];
    if(
    $quantita == null){
    $quantita=1;
    }
    $conta=count($descrizione[$i]);
    for (
    $i=0;$i<$conta;$i++){
    if(
    $scontoperc[$i] == null && $scontoval[$i] == null){
    $scontoperc[$i]=0;
    $scontoval[$i]=0;
    $prezzosconto[$i]=$prezzo[$i]*$quantita[$i];
    }
    if(
    $scontoperc[$i] == null){
    $scontoperc[$i]=0;
    $prezzosconto[$i] = (($prezzo[$i]*$quantita[$i]) - $scontoval[$i]);
    }elseif(
    $scontoval[$i] == null){
    $scontoval[$i]=0;
    $percentuale[$i]=(($prezzo[$i]*$scontoperc[$i])/100);
    $prezzosconto[$i] = ($prezzo[$i] - $percentuale[$i]) ;
    $prezzosconto[$i] = ($prezzosconto[$i] * $quantita[$i]);
    }

    }
    echo
    $prezzosconto[$i];
    echo
    $scontoperc[$i];
    echo
    $quantita[$i];
    }
    ?>

  6. #66
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    Non ha senso in quel modo!

    Io intendevo:

    Codice PHP:
    $conta=count($_POST['descrizione']);
    for (
    $i=0;$i<$conta;$i++){
    if(
    $_POST['scontoperc'][$i] == null && $_POST['scontoval'][$i] == null){

    ...
    Ciao!

  7. #67
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    quindi elimino la parte sopra?

    Codice PHP:
    <?php
    $prezzosconto
    =$_POST['prezzosconto'][$i];
    $prezzo=$_POST['prezzo'][$i];
    $scontoperc=$_POST['scontoperc'][$i];
    $scontoval=$_POST['scontoval'][$i];
    $quantita=$_POST['quantita'][$i];
    $descrizione=$_POST['descrizione'][$i];
    ?>
    ed agisco direttamente sui post?

  8. #68
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    Prova... anche se non so se funziona... Cioè dovrebbe andare anche come hai fatto tu, quindi penso che il problema sia un altro.

    Ciao!

  9. #69
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Eh appunto... infatti non va.... Ho provato come hai detto tu :

    Codice PHP:
    <?php
    if(isset($_POST['subtotale'])){
    /*$prezzosconto=$_POST['prezzosconto'][$i];
    $prezzo=$_POST['prezzo'][$i];
    $scontoperc=$_POST['scontoperc'][$i];
    $scontoval=$_POST['scontoval'][$i];
    $quantita=$_POST['quantita'][$i];
    $descrizione=$_POST['descrizione'][$i];
    if($quantita == null){
    $quantita=1;
    }*/
    $conta=count($_POST['descrizione']);
    for (
    $i=0;$i<$conta;$i++){
    if(
    $_POST['scontoperc'][$i] == null && $_POST['scontoval'][$i] == null){
    $_POST['scontoperc'][$i]=0;
    $_POST['scontoval'][$i]=0;
    $prezzosconto[$i]=$_POST['prezzo'][$i]*$_POST['quantita'][$i];
    }
    if(
    $_POST['scontoperc'][$i] == null){
    $_POST['scontoperc'][$i]=0;
    $prezzosconto[$i] = (($_POST['prezzo'][$i]*$_POST['quantita'][$i]) - $_POST['scontoval'][$i]);
    }elseif(
    $_POST['scontoval'][$i] == null){
    $_POST['scontoval'][$i]=0;
    $percentuale[$i]=(($_POST['prezzo'][$i]*$_POST['scontoperc'][$i])/100);
    $prezzosconto[$i] = ($_POST['prezzo'][$i] - $percentuale[$i]) ;
    $prezzosconto[$i] = ($prezzosconto[$i] * $_POST['quantita'][$i]);
    }

    }
    echo
    $prezzosconto[$i];
    echo
    $_POST['scontoperc'][$i];
    echo
    $_POST['quantita'][$i];
    }
    ?>
    Ottengo il medesimo risultato... Unica cosa che mi viene in mente... è che i valori dentro a quei text vengono prelevati dallo script che abbiamo fatto precedentemente... Cioè da qui:


    Codice PHP:
    <?php
    if(isset($result))
    {
    while(
    $righi=mysql_fetch_array($result))
    $barcodeart[$righi['Barcode']] = array('Descrizione'=>$righi['Descrizione'], 'Vendita'=>$righi['Vendita'],'UM'=>$righi['UM'],'Quantita'=>$righi['Quantita'],'Fornitore'=>$righi['Fornitore'],'Codice'=>$righi['Codice']); //creo un nuovo array dove salvo per ogni barcode, i dati.
    $barcodeart_da_mostrare = array();
    if(isset(
    $_POST['barcodeart_vecchi']))
    $barcodeart_da_mostrare = $_POST['barcodeart_vecchi']; //metto gli elementi vecchi realmente mostrati
    if(isset($_POST['barcodeart_new'])&& !empty($_POST['barcodeart_new'])){
    $queryart =mysql_query("SELECT * FROM articoli WHERE Barcode='".mysql_real_escape_string($_POST['barcodeart_new'])."'");
    //se $esiste == 0 non cè
    if(mysql_num_rows($queryart))//esiste
    $barcodeart_da_mostrare[] = $_POST['barcodeart_new']; //aggiungo quello nuovo (prima bisognerebbe far il controllo per vedere se esiste nel db)
    }
    foreach(
    $barcodeart_da_mostrare as $k)
    echo
    '
    <tr>
    <td><input type="text" placeholder="Barcode" name="barcodeart_vecchi[]" id="barcodeart" size="10" value="'
    .$k.'"></td>
    <td><input type="text" placeholder="Descrizione" name="descrizione[]" id="descrizione" size="32" value="'
    .$barcodeart[$k]['Descrizione'].'"></td>
    <td><input type="text" style="text-align:center" placeholder="Qnt" name="quantita[]" id="quantita" size="3" value="1"></td>
    <td><input type="text" placeholder="Prezzo" name="prezzo[]" id="prezzo" size="5" value="'
    .$barcodeart[$k]['Vendita'].'" ></td>
    <td><input type="text" placeholder="Sc %" name="scontoperc[]" id="scontoperc" size="3"></td>
    <td><input type="text" placeholder="Sc VAL" name="scontoval[]" id="scontoval" size="4"></td>
    <td><input type="text" placeholder="P.Scontato" name="prezzosconto[]" id="prezzosconto" size="6" value="'
    .$prezzosconto[$i].'"></td>
    <td><input type="hidden" name="fornitore[]" id="fornitore" size="100" value="'
    .$barcodeart[$k]['Fornitore'].'"></td>
    <td><input type="hidden" name="codice[]" id="codice" size="100" value="'
    .$barcodeart[$k]['Codice'].'"></td>
    <td><input type="hidden" name="reparto[]" id="reparto" size="100" value="'
    .$barcodeart[$k]['Reparto'].'"></td>
    <td><input type="hidden" name="UM[]" id="UM" size="100" value="'
    .$barcodeart[$k]['UM'].'"></td>
    </tr>
    '
    ;
    }
    ?>

  10. #70
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Ho fatto una prova singola... Su una pagina separata.... e sembra funzionare tutto.... Questo è il codice php :

    Codice PHP:
    <?php
    if(isset($_POST['subtotale'])){
    $prezzosconto=$_POST[prezzosconto];
    $prezzo=$_POST[prezzo];
    $scontoperc=$_POST[scontoperc];
    $scontoval=$_POST[scontoval];
    $quantita=$_POST[quantita];
    if(
    $quantita == null){
    $quantita=1;
    }
    if(
    $scontoperc == null && $scontoval == null){
    $scontoperc=0;
    $scontoval=0;
    $prezzosconto=$prezzo*$quantita;
    }
    if(
    $scontoperc == null){
    $scontoperc=0;
    $prezzosconto = (($prezzo*$quantita) - $scontoval);
    }elseif(
    $scontoval == null){
    $scontoval=0;
    $percentuale=(($prezzo*$scontoperc)/100);
    $prezzosconto = ($prezzo - $percentuale) ;
    $prezzosconto = ($prezzosconto * $quantita);
    }

    }
    ?>
    <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
    <input type="text" placeholder="Quantita" name="quantita" id="quantita" size="10" value="<?php echo $quantita; ?> ">
    <input type="text" placeholder="Prezzo" name="prezzo" id="prezzo" size="10" value="<?php echo $prezzo; ?> ">
    <input type="text" placeholder="Sc %" name="scontoperc" id="scontoperc" size="5" value="<?php echo $scontoperc; ?>" >
    <input type="text" placeholder="Sc VAL" name="scontoval" id="scontoval" size="10" value="<?php echo $scontoval; ?>" >
    <input type="text" placeholder="P.Scontato" name="prezzosconto" id="prezzosconto" size="10" value="<?php echo $prezzosconto; ?> "><br />
    <input type="submit" value="Subtotale" name="subtotale"><br>
    <?php echo' La quantita è:' . $quantita . ''; ?>
    </form>
    Cosi va e fa i calcoli normalmente ....

  11. #71
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    Eh ma quelli non sono array...

    Fai una prova: con il tuo script vecchio prova a stampare (con il comando var_dump();) alcune variabili, per vedere cosa contengono.

    Ciao!

  12. #72
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Ho fatto come hai detto te:

    Codice PHP:
    <php
    var_dump
    ($prezzo[$i]);
    var_dump($quantita[$i]);
    var_dump($scontoval[$i]);
    ?>
    e mi risponde: NULL NULL NULL...
    c'è un problema di input a sto punto... ma perche però??? la struttura la crea il php ed è tabulata... Perche mai non prende i valori??

  13. #73
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    Prova a far lo stesso con i POST: $_POST['scontoperc']

    Ciao!

  14. #74
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Ho fatto con il prezzo e sembra che lo prende guarda :


    NULL NULL NULL array(1) { [0]=> string(3) "139" }

    I primi null ho lasciato quelli di prima...

  15. #75
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    uhm... ho fatto delle prove inserendo altre variabili e var dump:

    Codice PHP:
    <?php
    if(isset($_POST['subtotale'])){
    $prezzosconto=$_POST['prezzosconto'];
    $prezzo=$_POST['prezzo'];
    $scontoperc=$_POST['scontoperc'];
    $scontoval=$_POST['scontoval'];
    $quantita=$_POST['quantita'];
    if(
    $quantita == null){
    $quantita=1;
    }
    echo
    "il prezzo e: " ;var_dump($prezzo);
    echo
    "la quantita e:";var_dump($quantita);
    echo
    "lo scontoval e:";var_dump($scontoval);
    echo
    "lo scontoperc e:";var_dump($scontoperc);
    echo
    "il prezzosconto e:";var_dump($prezzosconto);
    $conta=count($prezzo);
    for (
    $i=0;$i<$conta;$i++){
    if(
    $scontoperc[$i] == null && $scontoval[$i] == null){
    $scontoperc[$i]=0;
    $scontoval[$i]=0;
    $prezzosconto[$i]=$prezzo[$i]*$quantita[$i];
    }
    if(
    $scontoperc[$i] == null){
    $scontoperc[$i]=0;
    $prezzosconto[$i] = (($prezzo[$i]*$quantita[$i]) - $scontoval[$i]);
    }elseif(
    $scontoval[$i] == null){
    $scontoval[$i]=0;
    $percentuale[$i]=(($prezzo[$i]*$scontoperc[$i])/100);
    $prezzosconto[$i] = ($prezzo[$i] - $percentuale[$i]) ;
    $prezzosconto[$i] = ($prezzosconto[$i] * $quantita[$i]);
    }

    }

    }

    ?>
    facendo in questa maniera ottengo giustamente :

    Codice:
    il prezzo e: array(1) { [0]=> string(3) "139" } la quantita e:array(1) { [0]=> string(1) "1" } lo scontoval e:array(1) { [0]=> string(0) "" } lo scontoperc e:array(1) { [0]=> string(0) "" } il prezzosconto e:array(1) { [0]=> string(0) "" }
    Ma cmq non si inserisce nulla in quei campi....

  16. #76
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Ho risolto la questione... il tutto era dovuto al valore null piuttosto che 0.... Ora mi rimane un problema soltanto... Mettere dentro la while della costruzione del form la variabile $prezzosconto[$i] nel form... Non capisco come fare....

  17. #77
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Ho capito che devo passare la variabile prezzosconto in sessione... e fare un array di sessione (?)... In modo che ogni volta che premo subtotale lui calcola il prezzo sconto e lo scrive la dentro... il problema è... come posso fare?

  18. #78
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Ho aggiunto all'if il prezzo in sessione:

    Codice PHP:
    <?php
    if(isset($_POST['subtotale'])){
    $prezzosconto=$_POST['prezzosconto'];
    $prezzo=$_POST['prezzo'];
    $scontoperc=$_POST['scontoperc'];
    $scontoval=$_POST['scontoval'];
    $quantita=$_POST['quantita'];
    $conta=count($prezzo);
    for (
    $i=0;$i<$conta;$i++){
    if(
    $scontoperc[$i] == "0" && $scontoval[$i] == "0"){
    //non c'è sconto
    //$scontoperc[$i]=0;//queste due non servono più
    //$scontoval[$i]=0;
    $prezzosconto[$i]=$prezzo[$i]*$quantita[$i];
    $_SESSION['prezzosconto'][$i]=$prezzosconto[$i];
    }elseif(
    $scontoperc[$i] == "0" && $scontoval[$i] != "0"){
    //non c'e la percentuale di sconto ma il valore (totale?) dello sconto
    //$scontoperc[$i]=0;
    $prezzosconto[$i] = (($prezzo[$i]*$quantita[$i]) - $scontoval[$i]);
    $_SESSION['prezzosconto'][$i]=$prezzosconto[$i];
    }elseif(
    $scontoperc[$i] != "0"){
    $percentuale[$i]=(($prezzo[$i]*$scontoperc[$i])/100);
    $prezzosconto[$i] = ($prezzo[$i] - $percentuale[$i]) ;
    $prezzosconto[$i] = ($prezzosconto[$i] * $quantita[$i]);
    $_SESSION['prezzosconto'][$i]=$prezzosconto[$i];
    }
    //$formatted[$i] = sprintf("%01.2f", $prezzosconto[$i]); arrotonda a 2 compreso lo 0
    echo "per ".$prezzo[$i]." il prezzo scontato è: ". $_SESSION['prezzosconto'][$i] ."<br />";
    }}
    ?>
    Ora effettivamente quando vado a premere subtotale, mi fa vedere tutti e tre i prezzi nell'echo che abbiamo messo, ma dentro il form del prezzo sconto no -.-
    Il prezzo sconto è formato cosi :

    Codice PHP:
    <?php
    <td><input type="text" placeholder="P.Scontato" name="prezzosconto[]" id="prezzosconto" size="6" value="'.$_SESSION['prezzosconto'][$i].'"></td>
    ?>

  19. #79
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    Non chiedere qui per ogni minima cosa. Prima prova a ragionarci. Anche perché diventa improponibile stare al passo leggendo millemila risposte.

    Comunque, vedo solo:
    Codice PHP:
    <?php
    <td><input type="text" placeholder="P.Scontato" name="prezzosconto[]" id="prezzosconto" size="6" value="'.$_SESSION['prezzosconto'][$i].'"></td>
    ?>
    Che non ha senso. Al massimo devi mettere un echo.

    Immagino sia dentro un for. Scrivi qui tutto il pezzo.

    Ciao!

  20. #80
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Ma veramente il pezzo è quello dei barcode... cmq :

    Codice PHP:
    <?php
    foreach($barcodeart_da_mostrare as $k)
    echo
    '
    <tr>
    <td><input type="text" placeholder="Barcode" name="barcodeart_vecchi[]" id="barcodeart" size="11" align="center" value="'
    .$k.'"></td>
    <td><input type="text" placeholder="Descrizione" name="descrizione[]" id="descrizione" size="32" value="'
    .$barcodeart[$k]['Descrizione'].'"></td>
    <td><input type="text" style="text-align:center" placeholder="Qnt" name="quantita[]" id="quantita" size="3" value="1"></td>
    <td><input type="text" placeholder="Prezzo" name="prezzo[]" id="prezzo" size="5" value="'
    .$barcodeart[$k]['Vendita'].'" ></td>
    <td><input type="text" placeholder="Sc %" name="scontoperc[]" id="scontoperc" size="3" value="0"></td>
    <td><input type="text" placeholder="Sc VAL" name="scontoval[]" id="scontoval" size="4" value="0"></td>
    <td><input type="text" placeholder="P.Scontato" name="prezzosconto[]" id="prezzosconto" size="6" value="'
    .$_SESSION['prezzosconto'][$i].'"></td>
    <td><input type="hidden" name="fornitore[]" id="fornitore" size="100" value="'
    .$barcodeart[$k]['Fornitore'].'"></td>
    <td><input type="hidden" name="codice[]" id="codice" size="100" value="'
    .$barcodeart[$k]['Codice'].'"></td>
    <td><input type="hidden" name="reparto[]" id="reparto" size="100" value="'
    .$barcodeart[$k]['Reparto'].'"></td>
    <td><input type="hidden" name="UM[]" id="UM" size="100" value="'
    .$barcodeart[$k]['UM'].'"></td>
    </tr>
    '
    ;
    }
    ?>
    per ricavare il prezzo invece :

    Codice PHP:

    if(isset($_POST['subtotale'])){
    $prezzosconto=$_POST['prezzosconto'];
    $prezzo=$_POST['prezzo'];
    $scontoperc=$_POST['scontoperc'];
    $scontoval=$_POST['scontoval'];
    $quantita=$_POST['quantita'];
    $conta=count($prezzo);
    for (
    $i=0;$i<$conta;$i++){
    if(
    $scontoperc[$i] == "0" && $scontoval[$i] == "0"){
    //non c'è sconto
    //$scontoperc[$i]=0;//queste due non servono più
    //$scontoval[$i]=0;
    $prezzosconto[$i]=$prezzo[$i]*$quantita[$i];
    $_SESSION['prezzosconto'][$i]=$prezzosconto[$i];
    }elseif(
    $scontoperc[$i] == "0" && $scontoval[$i] != "0"){
    //non c'e la percentuale di sconto ma il valore (totale?) dello sconto
    //$scontoperc[$i]=0;
    $prezzosconto[$i] = (($prezzo[$i]*$quantita[$i]) - $scontoval[$i]);
    $_SESSION['prezzosconto'][$i]=$prezzosconto[$i];
    }elseif(
    $scontoperc[$i] != "0"){
    $percentuale[$i]=(($prezzo[$i]*$scontoperc[$i])/100);
    $prezzosconto[$i] = ($prezzo[$i] - $percentuale[$i]) ;
    $prezzosconto[$i] = ($prezzosconto[$i] * $quantita[$i]);
    $_SESSION['prezzosconto'][$i]=$prezzosconto[$i];
    }
    //$formatted[$i] = sprintf("%01.2f", $prezzosconto[$i]); arrotonda a 2 compreso lo 0
    echo "per ".$prezzo[$i]." il prezzo scontato è: ". $_SESSION['prezzosconto'][$i] ."<br />";
    }}
    ?>

  21. #81
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    Mi sfugge perché utilizzi le sessioni.
    Comunque, se vuoi utilizzare le sessioni, hai messo la session_start() all'inizio del codice?

    Ciao!

  22. #82
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Uso la sessione perchè il prezzo che ricavo con il tasto subtotale dovrebbe andare dentro al blocco "prezzosconto" della while che utilizziamo per trovare i barcode...
    Si cmq session start messa chiaramente...

  23. #83
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Da quel che ho capito è perche la variabile $i all'interno del ciclo per i barcode non è valorizzata... Non capisco come diavolo fare... L'indice $i è passabile in sessione volendo?
    una cosa tipo $i=$_SESSION['i']; ??

  24. #84
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    Nelle sessioni puoi benissimo salvarci $i.
    Perché hai deciso di usare le sessioni? Non puoi usare il form? Cosa stai cercando di fare? Puoi riassumere il tutto brevemente?

    Ciao!

  25. #85
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    allora... non so se hai provato il codice sopra, in ogni caso, io prendo il barcode e lo scrivo, il barcode se esiste crea un form con dentro barcode-descrizione-PREZZO-quantita-sconto % - sconto val - PREZZOFINALE.
    Io ho fatto un tasto subotale nel quale calcolo eventuali sconti e cerco il PREZZOFINALE. Fin qui tutto ok, riesco benissimo a calcolarlo e funziona perfettamente.. Il problema ora sta nel mettere il prezzofinale che ho trovato tramite pressione del subtotale, nei vari campi PREZZOFINALE del form che si autogenera... Questo è il problema... Se io la dentro ci metto direttamente $prezzofinale[$i] non si vede e rimane vuoto... il codice intero e il seguente :

    Codice PHP:
    <?php
    //creo la sessione
    //in TUTTE le pagine in cui uso le sessioni
    session_start();
    if(!isset(
    $_SESSION['user']) || !isset($_SESSION['pwd'])){//verifichi che esistano entrambe
    //non esistono
    //var_dump($_SESSION);
    header("location:login.php");
    exit();
    }
    <?
    php
    if(isset($_POST['barcodeart_new']) && !empty($_POST['barcodeart_new']))
    $queryart = 'SELECT * FROM articoli WHERE Barcode=\''.mysql_real_escape_string($_POST['barcodeart_new']).'\''; //se i barcode sono interi, si possono evitare gli apici \'
    else if(isset($_POST['barcodeart_vecchi'])&& !empty($_POST['barcodeart_vecchi']))
    $queryart = 'SELECT * FROM articoli WHERE 0 '; //il WHERE 0 è una bruttura... se non funziona, si può cercar di far di meglio

    if(isset($_POST['barcodeart_vecchi']))
    foreach(
    $_POST['barcodeart_vecchi'] as $barcode)
    $queryart .= ' OR Barcode=\''.mysql_real_escape_string($barcode).'\' '; //se i barcode sono interi, si possono evitare gli apici \'
    if(isset($queryart))
    $result = mysql_query($queryart) or die('Query failed: ' . mysql_error() . "<br />");
    ?>
    <table>
    <?php
    if(isset($result))
    {
    while(
    $righi=mysql_fetch_array($result))
    $barcodeart[$righi['Barcode']] = array('Descrizione'=>$righi['Descrizione'], 'Vendita'=>$righi['Vendita'],'UM'=>$righi['UM'],'Quantita'=>$righi['Quantita'],'Fornitore'=>$righi['Fornitore'],'Codice'=>$righi['Codice'],'Prezzo'=>$righi['Prezzo']); //creo un nuovo array dove salvo per ogni barcode, i dati.
    $barcodeart_da_mostrare = array();
    if(isset(
    $_POST['barcodeart_vecchi']))
    $barcodeart_da_mostrare = $_POST['barcodeart_vecchi']; //metto gli elementi vecchi realmente mostrati
    if(isset($_POST['barcodeart_new'])&& !empty($_POST['barcodeart_new'])){
    $queryart =mysql_query("SELECT * FROM articoli WHERE Barcode='".mysql_real_escape_string($_POST['barcodeart_new'])."'");
    //se $esiste == 0 non cè
    if(mysql_num_rows($queryart))//esiste
    $barcodeart_da_mostrare[] = $_POST['barcodeart_new']; //aggiungo quello nuovo (prima bisognerebbe far il controllo per vedere se esiste nel db)
    }
    foreach(
    $barcodeart_da_mostrare as $k)
    echo
    '
    <tr>
    <td><input type="text" placeholder="Barcode" name="barcodeart_vecchi[]" id="barcodeart" size="11" align="center" value="'
    .$k.'"></td>
    <td><input type="text" placeholder="Descrizione" name="descrizione[]" id="descrizione" size="32" value="'
    .$barcodeart[$k]['Descrizione'].'"></td>
    <td><input type="text" style="text-align:center" placeholder="Qnt" name="quantita[]" id="quantita" size="3" value="1"></td>
    <td><input type="text" placeholder="Prezzo" name="prezzo[]" id="prezzo" size="5" value="'
    .$barcodeart[$k]['Vendita'].'" ></td>
    <td><input type="text" placeholder="Sc %" name="scontoperc[]" id="scontoperc" size="3" value="0"></td>
    <td><input type="text" placeholder="Sc VAL" name="scontoval[]" id="scontoval" size="4" value="0"></td>'
    ;
    echo
    '<td><input type="text" placeholder="P.Scontato" name="prezzosconto[]" id="prezzosconto" size="6" value="'.$_SESSION['prezzosconto'][$i].'"></td>';
    echo
    '<td><input type="hidden" name="fornitore[]" id="fornitore" size="100" value="'.$barcodeart[$k]['Fornitore'].'"></td>
    <td><input type="hidden" name="codice[]" id="codice" size="100" value="'
    .$barcodeart[$k]['Codice'].'"></td>
    <td><input type="hidden" name="reparto[]" id="reparto" size="100" value="'
    .$barcodeart[$k]['Reparto'].'"></td>
    <td><input type="hidden" name="UM[]" id="UM" size="100" value="'
    .$barcodeart[$k]['UM'].'"></td>
    </tr>
    '
    ;
    }
    //chiusa la while proviamo...
    if(isset($_POST['subtotale'])){
    $prezzosconto=$_POST['prezzosconto'];
    $prezzo=$_POST['prezzo'];
    $scontoperc=$_POST['scontoperc'];
    $scontoval=$_POST['scontoval'];
    $quantita=$_POST['quantita'];
    $conta=count($prezzo);
    for (
    $i=0;$i<$conta;$i++){
    $_SESSION['i']=$i;
    if(
    $scontoperc[$i] == "0" && $scontoval[$i] == "0"){
    //non c'è sconto
    //$scontoperc[$i]=0;//queste due non servono più
    //$scontoval[$i]=0;
    $prezzosconto[$i]=$prezzo[$i]*$quantita[$i];
    $_SESSION['prezzosconto'][$i]=$prezzosconto[$i];
    }elseif(
    $scontoperc[$i] == "0" && $scontoval[$i] != "0"){
    //non c'e la percentuale di sconto ma il valore (totale?) dello sconto
    //$scontoperc[$i]=0;
    $prezzosconto[$i] = (($prezzo[$i]*$quantita[$i]) - $scontoval[$i]);
    $_SESSION['prezzosconto'][$i]=$prezzosconto[$i];
    }elseif(
    $scontoperc[$i] != "0"){
    $percentuale[$i]=(($prezzo[$i]*$scontoperc[$i])/100);
    $prezzosconto[$i] = ($prezzo[$i] - $percentuale[$i]) ;
    $prezzosconto[$i] = ($prezzosconto[$i] * $quantita[$i]);
    $_SESSION['prezzosconto'][$i]=$prezzosconto[$i];
    }
    //$formatted[$i] = sprintf("%01.2f", $prezzosconto[$i]); arrotonda a 2 compreso lo 0
    echo "per ".$prezzo[$i]." il prezzo scontato è: ". $_SESSION['prezzosconto'][$i] ."<br />";
    var_dump($_SESSION['i']);
    var_dump($_SESSION['prezzosconto']);
    }}
    ?>
    <?php
    if(!isset($_SESSION['barcode'])){
    //echo'<input type="text" readonly value="0" name="tot" id="tot" size="12"/>';
    echo '<br>';
    echo
    '<tr><td></td><td></td><td></td><td></td><td></td><td>
    <input type="button"
    value="Subtotale" class="subtotale" name="subtotale"></td> '
    ;
    echo
    '<td><input type="text" readonly value="0" name="tot" id="tot" size="6"/></td></tr>';
    } else {
    echo
    '<tr><td><b><font color="black" size="2"> PUNTI ACC. </font></b></td>';
    echo
    '<td><input type="text" readonly value="0" name="punti" id="punti" size="3"/></td><td></td><td></td><td></td>';
    echo
    '<td>
    <input type="submit" name="subtotale" onclick= "this.form.action='
    .$_SERVER['PHP_SELF'].'" value="Subtotale"></td> ';
    echo
    '<td><input type="text" readonly value="0" name="tot" id="tot" size="6"/></td></tr>';
    echo
    '<br>'; }
    echo
    '<tr><td></td><td></td><td></td><td></td><td></td><td><b><font color="black" size="2"> CONTANTI </font></b></td>';
    echo
    '<td><input type="text" readonly value="0" name="punti" id="punti" size="6"/></td></tr>';
    echo
    '<tr><td></td><td></td><td></td><td></td><td></td><td><b><font color="black" size="2"> RESTO </font></b></td>';
    echo
    '<td><input type="text" readonly value="0" name="punti" id="punti" size="6"/></td></tr>';
    ?>
    </table>

  26. #86
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    Citazione Originalmente inviato da AdminTeclis Visualizza messaggio
    Se io la dentro ci metto direttamente $prezzofinale[$i] non si vede e rimane vuoto...
    perché quell'array non esiste. Immagino che devi usare $prezzosconto[$i].

    Comunque, indipendentemente dalla logica dello script, salvare $i nelle sessioni non ha senso.
    Perché utilizzi le sessioni? Vuoi mostrare i dati in altre pagine mostrate successivamente?

    Comunque, ho trovato 2 minuti per leggere il codice. Mancano i tag <form>, quindi teoricamente i dati non dovrebbe nemmeno essere inviati.
    Come ti avevo accennato nei commenti qualche pagina fa, non fare:
    Codice:
    onclick= "this.form.action='.$_SERVER['PHP_SELF'].'"
    , ma imposta l'action nel tag <form>, appunto, che non esiste nemmeno.

    Una volta corrette le cose sopra, eliminando le sessioni che non credo ti servano, cerca di far funzionare:
    Codice PHP:
    if(isset($_POST['subtotale'])){
    $prezzosconto=$_POST['prezzosconto'];
    $prezzo=$_POST['prezzo'];
    $scontoperc=$_POST['scontoperc'];
    $scontoval=$_POST['scontoval'];
    $quantita=$_POST['quantita'];
    $conta=count($prezzo);
    for (
    $i=0;$i<$conta;$i++){
    if(
    $scontoperc[$i] == "0" && $scontoval[$i] == "0"){
    $prezzosconto[$i]=$prezzo[$i]*$quantita[$i];
    }elseif(
    $scontoperc[$i] == "0" && $scontoval[$i] != "0"){
    $prezzosconto[$i] = (($prezzo[$i]*$quantita[$i]) - $scontoval[$i]);
    }elseif(
    $scontoperc[$i] != "0"){
    $percentuale[$i]=(($prezzo[$i]*$scontoperc[$i])/100);
    $prezzosconto[$i] = ($prezzo[$i] - $percentuale[$i]);
    $prezzosconto[$i] = ($prezzosconto[$i] * $quantita[$i]);
    }
    echo
    "per ".$prezzo[$i]." il prezzo scontato è: ". $prezzosconto[$i] ."<br />";
    }}
    Quindi:

    1- verifica che tutti i valori prelevati $_POST siano array, con i contenuti corretti (ad esempio, con la var_dump())
    2- verifica che l'array $prezzosconto viene popolato correttamente (ad esempio, con la var_dump())


    Ciao!
    Ultima modifica di alemoppo : 05-06-2013 alle ore 17.19.08

  27. #87
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    gia fatto tutto.. e funziona perfettamente.. a me manca solamente la parte che $prezzosconto[$i] sia visualizzata dentro il form che si autogenera...

  28. #88
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    Quale dei due form? Se è il primo, prima dovresti far quei calcoli, poi mostrare il form. Se è il secondo, puoi usare benissimo quella variabile, perché l'hai già calcolata...

    Ciao!

  29. #89
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    Uhm ho ricontrollato per vedere se avevi ragione, ma invece è un form unico.. avevo postato solo il pezzo di riferimento, riposto il codice intero...

    Codice PHP:
    <?php
    session_start
    ();
    if(!isset(
    $_SESSION['user']) || !isset($_SESSION['pwd']))
    {
    header("location:login.php");
    exit();
    }
    include(
    'connect.php');
    ?>
    <table align="center">
    <tr><td><img src="images/logo_gestionale.png" ></td></tr></table>
    <?php
    $querytrans
    =mysql_query("SELECT * FROM Transazioni ");
    $righe=mysql_fetch_array($querytrans);
    $transazioni=$righe[transazioni]+1;
    $_SESSION['transazioni'] = $transazioni;
    ?>
    <br>
    <br>
    <table align="left">
    <tr><td>
    <b><font size="2">OPERATORE</font> <font color="#FFFFFF" size="2"><?php echo $_SESSION[user]; ?></font></b></td></tr>
    <tr><td>
    <b><font size="2">DATA</font> <font color="#FFFFFF" size="2"><?php echo (date("d/m/Y"));?></font></b></td></tr>
    <tr><td><b><font size="2">ORA</font> <font color="#FFFFFF" size="2"> <?php echo (date("H:i"));?></font></b></td></tr>
    <tr><td><b><font size="2">TRANSAZIONE N°</font> <font color="#FFFFFF" size="2"> <?php echo $transazioni; ?></font></b></td></tr>
    <tr><td><b><font size="2">CARD N°</font> <font color="#FFFFFF" size="2"><?php echo $_SESSION[barcode]; ?></font></b></td></tr>
    <?php
    if(!isset($_SESSION['barcode'])){
    echo
    '<tr><td><b><font color="black" size="2">SALDO PUNTI </font></b><font color="red"></font>'; echo'<input type="text" readonly value="0" name="puntiprec" id="puntiprec" size="3"/></td></tr>';
    } else {
    $query=mysql_query("SELECT * FROM fidelitypoint WHERE barcode='$_SESSION[barcode]' ");
    $esiste=mysql_num_rows($query);
    if(
    $esiste > 0){
    $rows=mysql_fetch_array($query);
    }
    $pt=0;
    $totpt=0;
    $querypunti=mysql_query("Select sum(punti) from fidelitypoint where barcode='$_SESSION[barcode]'");
    $row=mysql_fetch_array($querypunti);
    echo
    '<tr><td><b><font color="black" size="2">SALDO PUNTI </font></b><font color="red"></font>'; echo'<input type="text" readonly value="' . $row[0] . '" name="puntiprec" id="puntiprec" size="2"/></td></tr>';
    }
    ?>
    </table>
    <p>
    <form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
    <table>
    <tr>
    <td><input type="text" placeholder="Barcode" name="barcodeart_new" id="barcodeart" size="10" value=""></td>
    <td><input type="submit" class="visto" name="visto" value=""></td>
    </tr>
    <tr bordercolor="#000000" border="1">
    <td width="110" align="center"><font color="#FFFFFF"><b>Barcode</b></font></td>
    <td width="250" align="center"><font color="#FFFFFF"><b>Descrizione</b></font></td>
    <td width="50" align="center"><font color="#FFFFFF"><b>Quantita'</b></font></td>
    <td width="60" align="center"><font color="#FFFFFF"><b>Prezzo</b></font></td>
    <td width="60" align="center"><font color="#FFFFFF"><b>Sconto %</b></font></td>
    <td width="60" align="center"><font color="#FFFFFF"><b>Sconto VAL</b></font></td>
    <td width="70" align="center"><font color="#FFFFFF"><b>Prezzo Finale</b></font></td>
    </tr>
    </table>
    <?php
    if(isset($_POST['barcodeart_new']) && !empty($_POST['barcodeart_new']))
    $queryart = 'SELECT * FROM articoli WHERE Barcode=\''.mysql_real_escape_string($_POST['barcodeart_new']).'\''; //se i barcode sono interi, si possono evitare gli apici \'
    else if(isset($_POST['barcodeart_vecchi'])&& !empty($_POST['barcodeart_vecchi']))
    $queryart = 'SELECT * FROM articoli WHERE 0 '; //il WHERE 0 è una bruttura... se non funziona, si può cercar di far di meglio

    if(isset($_POST['barcodeart_vecchi']))
    foreach(
    $_POST['barcodeart_vecchi'] as $barcode)
    $queryart .= ' OR Barcode=\''.mysql_real_escape_string($barcode).'\' '; //se i barcode sono interi, si possono evitare gli apici \'
    if(isset($queryart))
    $result = mysql_query($queryart) or die('Query failed: ' . mysql_error() . "<br />");
    ?>
    <table>
    <?php
    if(isset($result))
    {
    while(
    $righi=mysql_fetch_array($result))
    $barcodeart[$righi['Barcode']] = array('Descrizione'=>$righi['Descrizione'], 'Vendita'=>$righi['Vendita'],'UM'=>$righi['UM'],'Quantita'=>$righi['Quantita'],'Fornitore'=>$righi['Fornitore'],'Codice'=>$righi['Codice'],'Prezzo'=>$righi['Prezzo']); //creo un nuovo array dove salvo per ogni barcode, i dati.
    $barcodeart_da_mostrare = array();
    if(isset(
    $_POST['barcodeart_vecchi']))
    $barcodeart_da_mostrare = $_POST['barcodeart_vecchi']; //metto gli elementi vecchi realmente mostrati
    if(isset($_POST['barcodeart_new'])&& !empty($_POST['barcodeart_new'])){
    $queryart =mysql_query("SELECT * FROM articoli WHERE Barcode='".mysql_real_escape_string($_POST['barcodeart_new'])."'");
    //se $esiste == 0 non cè
    if(mysql_num_rows($queryart))//esiste
    $barcodeart_da_mostrare[] = $_POST['barcodeart_new']; //aggiungo quello nuovo (prima bisognerebbe far il controllo per vedere se esiste nel db)
    }
    $i=0;
    foreach(
    $barcodeart_da_mostrare as $k)
    $i++;
    echo
    '
    <tr>
    <td><input type="text" placeholder="Barcode" name="barcodeart_vecchi[]" id="barcodeart" size="11" align="center" value="'
    .$k.'"></td>
    <td><input type="text" placeholder="Descrizione" name="descrizione[]" id="descrizione" size="32" value="'
    .$barcodeart[$k]['Descrizione'].'"></td>
    <td><input type="text" style="text-align:center" placeholder="Qnt" name="quantita[]" id="quantita" size="3" value="1"></td>
    <td><input type="text" placeholder="Prezzo" name="prezzo[]" id="prezzo" size="5" value="'
    .$barcodeart[$k]['Vendita'].'" ></td>
    <td><input type="text" placeholder="Sc %" name="scontoperc[]" id="scontoperc" size="3" value="0"></td>
    <td><input type="text" placeholder="Sc VAL" name="scontoval[]" id="scontoval" size="4" value="0"></td>'
    ;
    echo
    '<td><input type="text" placeholder="P.Scontato" name="prezzosconto[]" id="prezzosconto" size="6" value="'.$_SESSION['prezzosconto'][$i].'"></td>';
    echo
    '<td><input type="hidden" name="fornitore[]" id="fornitore" size="100" value="'.$barcodeart[$k]['Fornitore'].'"></td>
    <td><input type="hidden" name="codice[]" id="codice" size="100" value="'
    .$barcodeart[$k]['Codice'].'"></td>
    <td><input type="hidden" name="reparto[]" id="reparto" size="100" value="'
    .$barcodeart[$k]['Reparto'].'"></td>
    <td><input type="hidden" name="UM[]" id="UM" size="100" value="'
    .$barcodeart[$k]['UM'].'"></td>
    </tr>
    '
    ;
    }
    //chiusa la while proviamo...
    if(isset($_POST['subtotale'])){
    $prezzosconto=$_POST['prezzosconto'];
    $prezzo=$_POST['prezzo'];
    $scontoperc=$_POST['scontoperc'];
    $scontoval=$_POST['scontoval'];
    $quantita=$_POST['quantita'];
    $conta=count($prezzo);
    for (
    $i=0;$i<$conta;$i++){
    $_SESSION['i']=$i;
    if(
    $scontoperc[$i] == "0" && $scontoval[$i] == "0"){
    //non c'è sconto
    //$scontoperc[$i]=0;//queste due non servono più
    //$scontoval[$i]=0;
    $prezzosconto[$i]=$prezzo[$i]*$quantita[$i];
    $_SESSION['prezzosconto'][$i]=$prezzosconto[$i];
    }elseif(
    $scontoperc[$i] == "0" && $scontoval[$i] != "0"){
    //non c'e la percentuale di sconto ma il valore (totale?) dello sconto
    //$scontoperc[$i]=0;
    $prezzosconto[$i] = (($prezzo[$i]*$quantita[$i]) - $scontoval[$i]);
    $_SESSION['prezzosconto'][$i]=$prezzosconto[$i];
    }elseif(
    $scontoperc[$i] != "0"){
    $percentuale[$i]=(($prezzo[$i]*$scontoperc[$i])/100);
    $prezzosconto[$i] = ($prezzo[$i] - $percentuale[$i]) ;
    $prezzosconto[$i] = ($prezzosconto[$i] * $quantita[$i]);
    $_SESSION['prezzosconto'][$i]=$prezzosconto[$i];
    }
    //$formatted[$i] = sprintf("%01.2f", $prezzosconto[$i]); arrotonda a 2 compreso lo 0
    echo "per ".$prezzo[$i]." il prezzo scontato è: ". $_SESSION['prezzosconto'][$i] ."<br />";
    var_dump($_SESSION['i']);
    var_dump($_SESSION['prezzosconto']);
    }}
    ?>
    <?php
    if(!isset($_SESSION['barcode'])){
    //echo'<input type="text" readonly value="0" name="tot" id="tot" size="12"/>';
    echo '<br>';
    echo
    '<tr><td></td><td></td><td></td><td></td><td></td><td>
    <input type="button"
    value="Subtotale" class="subtotale" name="subtotale"></td> '
    ;
    echo
    '<td><input type="text" readonly value="0" name="tot" id="tot" size="6"/></td></tr>';
    } else {
    echo
    '<tr><td><b><font color="black" size="2"> PUNTI ACC. </font></b></td>';
    echo
    '<td><input type="text" readonly value="0" name="punti" id="punti" size="3"/></td><td></td><td></td><td></td>';
    echo
    '<td>
    <input type="submit" name="subtotale" onclick= "this.form.action='
    .$_SERVER['PHP_SELF'].'" value="Subtotale"></td> ';
    echo
    '<td><input type="text" readonly value="0" name="tot" id="tot" size="6"/></td></tr>';
    echo
    '<br>'; }
    echo
    '<tr><td></td><td></td><td></td><td></td><td></td><td><b><font color="black" size="2"> CONTANTI </font></b></td>';
    echo
    '<td><input type="text" readonly value="0" name="punti" id="punti" size="6"/></td></tr>';
    echo
    '<tr><td></td><td></td><td></td><td></td><td></td><td><b><font color="black" size="2"> RESTO </font></b></td>';
    echo
    '<td><input type="text" readonly value="0" name="punti" id="punti" size="6"/></td></tr>';
    ?>
    </table>
    <table align="left">
    <tr>
    <td width="240"></td>
    <td><input type="button" value="CONTANTI" class="cotanti"></td>
    <td width="50"></td>
    <td><input type="button" value="CARTA DI CREDITO" class="cartacredito"></td>
    <td width="85"></td>
    <td><input type="button" value="BANCOMAT" class="bancomat"></td>
    </tr>
    </table>
    <p><table align="left">
    <tr><td><input name="read" type="submit" id="read" value="Transazione"></td></tr><br></p>
    </table>
    </div>
    </form>
    </p>
    </body>
    </html>

  30. #90
    AdminTeclis non è connesso Utente
    Data registrazione
    29-12-2004
    Messaggi
    128

    Predefinito

    ho fatto altre prove per verificare che la sessione veniva passata, e cosi è...
    Ho anche provato a mettere un $i=0; prima del ciclo e un $i++; alla fine... Ma niente mi restituisce una cosa strana... posto immagine


Pagina 3 di 4 PrimoPrimo 1234 UltimoUltimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •