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

    Prelevare dati da un form e passarli a pagina PHP

    Ciao a tutti, ho il seguente problema:

    ho realizzato una pagina PHP che riempie una tabella con alcuni dati prelevati da un DB di MySQL.
    Si tratta di prodotti che vorrei vendere e a fianco di ciascuno ho messo una checkbox di selezione per ordinarli.

    Il form in questione invia i dati ad un'altra pagina PHP che dovrebbe leggere tutte le caselle selezionate e mostrare quali sono state selezionate.
    Ecco il codice delle checkbox:
    Codice PHP:
    <input type="checkbox" name="prod" value="$nome"
    Dove $nome è la variabile PHP che contiene il nome del prodotto che ha letto dentro ad un ciclo for dal DB.

    Il problema è che mi mostra solo l'ultima selezionata, non tutte quelle selezionate come vorrei.

    Potete aiutarmi?

  2. #2
    foreach ($nome as $value)
    {
    echo"$value";
    }
    Un uomo è vecchio solo quando i rimpianti, in lui, superano i sogni. A. Einstein

  3. #3
    Grazie della risposta.

    Non ho capito una cosa...la variabile $value cosa contiene?

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Così come ti è stato suggerito la variabile $value non potrà contenere nulla, anzi se provassi il codice riceveresti addirittura un Warning (per il foreach è necessario disporre di un array)...

    Devi modificare l'attributo "name" dell'input checkbox aggiungendo delle parentesi quadre [] per ottenere i valori inviati in un'array.

    codice:
    <input type="checkbox" name="prod[]" value="$nome">
    Nella pagina in cui ricevi i dati poi, recuperi i valori inviati trattandoli come array appunto, quindi anche un semplice foreach p&ograve; andar bene

    Codice PHP:
    foreach($_POST['prod'] as $value

  5. #5
    Grazie mille.
    Mi ero autosuggerito che la variabile $value non conteneva nulla.

    Ora comunque funziona. Potresti spiegarmi velocemente l'uso e il significato della sintassi all'interno del foreach?

  6. #6
    Nel tuo form, è possibile selezionare più di un valore, quindi la variabile $nome conterrà tanti valori quanti sono quelli selezionati; questo vul dire che si tratta di un array. Una volta cliccato su "invia", nella pagina in cui analizzi il form, avrai quindi l'array:
    $nome = $_POST["nomes"].
    Adesso per scorrerlo utilizzi in questo caso il foreach
    esempio: $nome = array(mario,giorgio,luca)
    foreach ($nome as $value)
    {
    echo "$value";
    }
    Scorriamo l'array $nome ed ad ogni ciclo, si assegna il valore dell'elemento corrente a $value e il puntatore interno avanza di una posizione.
    Un uomo è vecchio solo quando i rimpianti, in lui, superano i sogni. A. Einstein

  7. #7
    Originariamente inviato da neida
    Così come ti è stato suggerito la variabile $value non potrà contenere nulla, anzi se provassi il codice riceveresti addirittura un Warning (per il foreach è necessario disporre di un array)...

    Devi modificare l'attributo "name" dell'input checkbox aggiungendo delle parentesi quadre [] per ottenere i valori inviati in un'array.

    codice:
    <input type="checkbox" name="prod[]" value="$nome">
    Nella pagina in cui ricevi i dati poi, recuperi i valori inviati trattandoli come array appunto, quindi anche un semplice foreach p&ograve; andar bene

    Codice PHP:
    foreach($_POST['prod'] as $value

    Si hai ragione, non ci avevo fatto caso che non aveva messo le [].
    Un uomo è vecchio solo quando i rimpianti, in lui, superano i sogni. A. Einstein

  8. #8
    Ok. Ora ho capito il significato di quel 'as'.

  9. #9
    Un'altra domanda:

    come posso passare, tramite il form, due valori contemporaneamente quando viene selezionata una casella?

    Cioè prima avevo:
    codice:
    <input type="checkbox" name="prod[]" value="$nome">
    Vorrei avere:
    codice:
    <input type="checkbox" name="prod[]" value="$nome,$prezzo">
    Cioè vorrei riuscire a passare, in corrispondenza del prodotto selezionato, non solo il nome ma anche il prezzo.

    Forse devo creare un campo nascosto, così:
    codice:
    <input type="hidden" name="prod[]" value="$prezzo">

  10. #10
    Lo voglio fare in quanto dovrai anche sommare poi i prezzi dei prodotti selezionati e comunicare il totale.

    Nessuno mi può aiutare?

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.