Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    Problema con $_POST e ciclio while

    Ciao a tutti,
    ho creato un ciclio in php che funziona più o meno così: continuo a scaricarmi le variabili finchè queste sono diverse da zero (questo perchè l'utente può scegliere quante inserirne).

    Codice PHP:
    if  ($singolo!=0)
    {
    $uno=2;
    do { 
    $_POST[singolo_$uno]; $uno++; }
    while (
    $singolo_$uno!=0); 

    Ovviamente il problema è il nome della variabile, che deve variare nel corso del ciclio, ma che non può essere scritto in quel modo. Come posso ovviare al problema? Ho già provato a definire una $variabile=$singolo_$uno ma in quel caso il $_POST non funziona (la interpreta come una scritta...)

    Help!

  2. #2
    quando le variabili POST vengono inviate ad una pagina..nn c'è bisogno d scaricarle...xke sono li..al massimo dei memorizzarle in altre variabili..detto qst nn ho capito bene cosa vuoi fare..
    La programmazione...
    che passione!!..

  3. #3
    Si beh intendevo "scaricare" nel senso di effetture $_POST e definirle con un nome in sostanza.
    Allora, io ho permesso all'utente di utilizzare più campi per inserire fino a quante variabili vuole (con un tetto massimo che è molto alto), quindi per evitare di dover fare subito $_POST di molte variabili (molte delle quali sono probabilmente uguali a zero) volevo che un ciclo continuasse a fare $_POST delle variabili il cui nome è $singolo_$uno (dove $uno varia da 1 in poi...) finchè l'ultima variabile è uguale a zero.
    Spero sia un po' più chiaro...

  4. #4
    :master: :master: :master: ...nn molto..allora...se per $singolo_$uno intendi un indice puoi fare cosi :



    Codice PHP:
    // creo l'array variabili
    $variabili = array();
    // ciclo fino a quando l'indice i nn raggiunge valore_massimo
    for ( $i 1$i <= valore_massimo$i++ )
            
    // aggiungo all'array la variabile POST[i]
            
    $variabili[] = $_POST[$i]; 
    a quanto ho capito qst dovrebbe andare bene...altrimenti...
    La programmazione...
    che passione!!..

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    utilizzo anche io quel metodo a volte e faccio così

    considerando che nel form TUTTI i campi devono essere name=dati[]

    Codice PHP:
    // creo l'array variabili
    $variabili = array();
    foreach (
    $_POST['dati'] as $val)
    {
    if (
    $val!="")  //se il campo non è vuoto
            
    $variabili[] = $val//aggiungo il valore si post all' array

    }

    //nell' array $variabili avrai tutti i campi compilati e non i vuoti 
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    Uhm...non so se è la soluzione. Il fatto è che io ricevo variabili con nomi diversi, dovrei fare:

    Codice PHP:
    $_POST[variabile_1];
    $_POST[variabile_2];
    $_POST[variabile_3];
    $_POST[variabile_4];
    ... 
    Per evitare questo vorrei poter fare un ciclo così:

    Codice PHP:
    for ( $i=1$i<=valore_scelto$i++ ) 
    $dati $_POST[variabile_$i]} 
    Solo che siccome non posso conoscere il valore_scelto vorrei che il ciclo funzionasse finchè l'ultima variabile non è vuota. I problemi sono due:
    1) come farlo andare avanti finchè la variabile non è vuota?
    2) come gestire il nome della variabile che varia?

    Grazie mille per il supporto...

  7. #7
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    forse ho capito...

    per ottenere quello che dici te devi fare così

    vonsiderando che le variabili sono

    variabile_1
    variabile_2
    variabile_3
    variabile_4
    variabile_5
    variabile_6

    riprendiamo il codice di prima...

    sceglierei un numero massimale tipo 100
    Codice PHP:
    for ($num=1;$num<=100;$num++)
    {
    $var="variabile".$num;
    if (
    $_POST["$var"]==="")
    $max=($num-1); break;}
    }

    //adesso hai $max che è il numero di variabili compilate.


    for ( $i=1$i<=$max$i++ )

    $var="variabile_".$i
    $dati 
    $_POST["$var"];

    potrebbe essere uan soluzione ma qualcuno piu bravo di me riesce sicuramente a fare meglio

    sempre se ho capito il problema!!
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  8. #8
    Grazie dottwatson, ma ho provato lo script e non mi pare funzioni.
    Credo che non interpreti bene questo:

    Codice PHP:
    $var="variabile_".$num
    Infatti

    Codice PHP:
    echo $var
    mi restituisce variabile_...come faccio????

    Grazie cmq!

  9. #9
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    ho commesso 2 piccoli errori io ma quello che mi hai segnalato deve funzionare per forza :P

    for ($num=1;$num<=100;$num++)
    {
    $var="variabile".$num;
    if ($_POST["$var"]==="")
    { $max=($num-1); break;}
    }

    prova così

    Codice PHP:
    for ($num=1;$num<=100;$num++)
    {
    $var="variabile_".$num;
    if (
    $_POST["$var"]=="")
    $max=($num-1); break;}

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  10. #10
    Si avevo notato gli errori e avevo copiato lo script corretto, però vedi:

    Codice PHP:
    for ($num=1;$num<=37;$num++)

    {
    $var="variabile_".$num;
    if (
    $_POST["$var"]=="")
    $max=($num-1); break;}
    //se qui dico di stampare a video $var lui mi stampa "variabile_"

    for ( $i=1$i<=$max$i++ )
    {
    $var="variabile_".$i;
    $dati$_POST["$var"];
    //e se qui stampo a video $dati lui non stampa nulla... 
    Non so più che pensare...

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.