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

    Passare più valori con una variabile $_POST

    Buon pomeriggio, mi ritrovo in una situazione dove ho bisogno di passare un numero indefinito di valori ad una sola variabile post. Ho provato ad usare un array ma non funziona... Del tipo che facevo name="var[<?php echo $i; ?>]", e fin qui l'algoritmo sembrava logico... Ma al momento del richiamo da parte di PHP quella variabile non restituisce nulla, il che mi fa dedurre che non è possibile usare un array per il name di una variabile... come posso risolvere? Avevo pensato di chiamare le variabili name="var<?php echo $i; ?>", in questo modo i risultati sarebbero var1, var2, ecc, ma al momento del richiamo da PHP cosa faccio? C'è un modo di andare a modificare il nome della variabile? (per gli array basta fare $var[$i], ma in questo caso non credo si possa fare qualcosa) Se non è chiaro mi spiego meglio.

  2. #2
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    Ti assicuro che puoi passare tramite post un valore come array

    codice:
    [...] name="var[]"> [...]
    non devi mettere l'indice

  3. #3
    non capisco... il primo lo lascio a name="var[0]", giusto? Poi ho fatto un script che stampa delle nuove righe... a quello script dico di stampare ogni riga con name="var[]"?
    Mentre quando leggo dal PHP faccio while (isset($_POST['var[]')) o cosa? Scusa le domande, mi ha un po' confuso la questione

  4. #4
    $_POST è un array, puoi fare un ciclo foreach

    Codice PHP:
    foreach($_POST['var'] as $var)
    {
    echo 
    $var;


  5. #5
    Capisco... non ho mai usato foreach, anche se lo conosco... mi scrivereste un esempio, anche banale, su come potrei risolvere questo problema per favore? Poi vi lascio ai vostri affari, promesso

  6. #6
    Ecco
    Codice PHP:

    <input type="text" name="var[]" value="" />
    <
    input type="text" name="var[]" value="" />
    <
    input type="text" name="var[]" value="" />
    <
    input type="text" name="var[]" value="" />
    .................


    poi li recuperi con $_POST['var']

    e li cicli con foreach

    foreach(
    $_POST['var'] as $var)
    {
    echo 
    $var;
    }

    Oppure assegni direttamente un indice 
    <input type="text" name="var[1]" value="" />
    <
    input type="text" name="var[2]" value="" />
    <
    input type="text" name="var[3]" value="" />
    <
    input type="text" name="var[4]" value="" />

     
    li recuperi sempre con $_POST['var']

    e puoi o ciclarli o accedere direttamente
    $var 
    $_POST['var'];

    echo 
    $var[2];
    .......
    ...... 

  7. #7
    Grazie mille, è perfetto!
    Se non è troppo un disturbo vorrei capire però come mai il mio metodo non andava (altrimenti è lo stesso, il problema l'ho già risolto)

    Dapprima creavo l'input, il primo:
    <input name="var[0]" ... />
    Poi gli altri, con un click su un apposito pulsante, il cui indice veniva ogni volta incrementato di uno:
    oINPUT.setAttribute("name", name+"["+i+"]");
    Infine richiamavo tutto da PHP, per provare ho fatto:
    if (isset($_POST['var['.$i.']']))
    echo $_POST['var['.$i.']'];

    Vi sembra ci sia qualcosa di sbagliato qui? Altrimenti si è trattato di un errore di sintassi o distrazione forse...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.