Visualizzazione risultati 1 fino 6 di 6

Discussione: passare array tramite form a modulo php

  1. #1
    L'avatar di usrisorta
    usrisorta non è connesso Neofita
    Data registrazione
    19-11-2003
    Residenza
    Casalsigone
    Messaggi
    8

    Question passare array tramite form a modulo php

    Ciao a tutti,
    chiedo gentilmente una mano... il problema è il seguente:

    - devo inserire delle pagelle con commenti di una partita di calcio con relativa formazione, commenti, ecc...

    Primo passaggio:
    sono nel primo form faccio inserire la data ed il tipo di partita e proseguo:
    ================================================== =====
    <form action="xxx.php" method="post">
    <input type="text" name="PAGELLA[0]"> <!-- Giorno -->
    <input type="text" name="PAGELLA[1]"> <!-- Mese -->
    <input type="text" name="PAGELLA[2]"> <!-- Anno -->
    <input type="text" name="PAGELLA[3]"> <!-- Tipo di partita -->
    <input type="submit" value="PROSEGUI">
    </form>
    ================================================== =====

    Secondo passaggio:
    visualizzo gli input precedenti e faccio inserire i giocatori
    ================================================== =====
    echo $PAGELLA[0];
    echo $PAGELLA[1];
    echo $PAGELLA[2];
    echo $PAGELLA[3];

    <form action="xxx.php" method="post">
    <input type="text" name="PAGELLA[4][0]">
    <input type="text" name="PAGELLA[4][1]">
    <input type="text" name="PAGELLA[4][2]">
    <input type="text" name="PAGELLA[4][3]">
    ...
    <input type="hidden" name="PAGELLA" value="<?php echo $PAGELLA; ?>">
    <input type="submit" value="PROSEGUI">
    </form>
    ================================================== =====

    Terzo passaggio:
    visualizzo gli input precedenti e devo far inserire i commenti ma quando
    richiamo la data ed il tipo di partita mi visualizza la scritta scomposta "Array"
    perchè evidentemente il valore echo $PAGELLA restituisce "Array"
    ================================================== =====
    echo $PAGELLA[0];
    echo $PAGELLA[1];
    echo $PAGELLA[2];
    echo $PAGELLA[3];
    <form action="xxx.php" method="post">
    <input type="text" name="PAGELLA[5]"> <!-- Titolo commento -->
    <textarea name="PAGELLA[6]"> " rows="5" cols="42"></textarea>
    <input type="submit" value="PROSEGUI">
    </form>
    ================================================== ======

    Quesito:
    Come faccio a passare un array ad un modulo php da un form?
    In rosso ho segnato dove, secondo me potrebbe essere l'errore...
    "Un uomo quando si innamora diventa un incapace. Una donna quando si innamora diventa capace di tutto." - Ivan Corellas

  2. #2
    Guest

    Predefinito

    Citazione Originalmente inviato da usrisorta
    Terzo passaggio:
    visualizzo gli input precedenti e devo far inserire i commenti ma quando
    richiamo la data ed il tipo di partita mi visualizza la scritta scomposta "Array"
    perchè evidentemente il valore echo $PAGELLA restituisce "Array"
    Non ho capito questa parte: per visualizzare la data dovresti mettere:
    print $PAGELLA[0] . "-" . $PAGELLA[1] . "-" . $PAGELLA[2]; (in questo caso vedresti la data formattata così: 30-09-04, altrimenti puoi scegliere altri separatori al posto del "-", ho semplicemente fatto un banale concatenamento di stringhe)

    mentre per il tipo di partita dovresti mettere:
    print $PAGELLA[3];

    in nessun caso dovresti scrivere semplicemente $PAGELLA, ma dovresti riferirti ai suoi elementi attraverso le chiavi, proprio perchè (come lui ti segnala) è un array!
    Quindi, rispondendo alla tua ultima domanda, non capisco perchè vuoi sapere come passare un array attraverso moduli, dal momento che è proprio quello che hai fatto. Non hai passato tutto l'array "in un colpo solo", ma lo hai passato con la definizione dei suoi elementi presi singolarmente.

  3. #3
    L'avatar di usrisorta
    usrisorta non è connesso Neofita
    Data registrazione
    19-11-2003
    Residenza
    Casalsigone
    Messaggi
    8

    Predefinito

    Volevo sapere se esiste un modo per passare un array in un colpo solo tramite un form o se devo inserire ogni singolo elemento...

    N.B.:
    Dal primo al secondo passaggio gli elementi dell'array li passo singolarmente e li visualizzo nel secondo senza nessun problema.
    Dal secondo al terzo passaggio, dove mi si manifesta il problema, passo i giocatori singolarmente, come al passaggio precedente(nessun problema), ma i primi elementi(data e tipo partita), volevo passarli in un colpo solo nel modo seguente(che non funziona):
    <input type="hidden" name="PAGELLA" value="<?php echo $PAGELLA; ?>">

    1a opzione:
    passo tutto l'array (a quanto mi risulta non si può perchè mi restituisce "Array"
    ================================================== ==============
    ...
    <input type="hidden" name="PAGELLA" value="<?php echo $PAGELLA; ?>">
    ...
    ================================================== ==============

    Mi restituisce:
    ************************************************** **************
    echo $PAGELLA[0]; A
    echo $PAGELLA[1]; r
    echo $PAGELLA[2]; r
    echo $PAGELLA[3]; a
    <form action="xxx.php" method="post">
    <input type="text" name="PAGELLA[5]"> <!-- Titolo commento -->
    <textarea name="PAGELLA[6]"> " rows="5" cols="42"></textarea>
    <input type="submit" value="PROSEGUI">
    </form>
    ************************************************** **************


    ================================================== ==============
    2a opzione:
    passo ogni singolo elemento (si può però diventa laborioso):
    ================================================== ==============
    ...
    <input type="hidden" name="PAGELLA[0]" value="<?php echo $PAGELLA[0]; ?>">
    <input type="hidden" name="PAGELLA[1]" value="<?php echo $PAGELLA[1]; ?>">
    ...
    ================================================== ==============
    Cerco un metodo alternativo per passare questi elementi... quindi come passare un array ad un modulo php attraverso un form per non dover scrivere tutti gli elementi uno ad uno...

    La stampa non è un problema... ho semplificato per far capire i vari parametri che voglio far passare...
    "Un uomo quando si innamora diventa un incapace. Una donna quando si innamora diventa capace di tutto." - Ivan Corellas

  4. #4
    Guest

    Predefinito

    Purtroppo temo che non ci sia un metodo per fare ciò che vorresti, ma per un limite intrinseco agli stessi form. Mi spiego: nel momento in cui definisci un campo <input type="text" name="PAGELLA[5]">, "PAGELLA[5]" NON E' una variabile PHP (o meglio, non ancora), ma solo il nome di un campo HTML, il quale gli array non sa neppure cosa sono :smile:
    Il valore così memorizzato può diventare un array quando è php che lo "processa", ovvero nel secondo codice che carichi (quello del method=post). In quella circostanza puoi assegnare i valori in corrispondenza di diverse chiavi di uno stesso array, ma non prima

  5. #5
    Guest

    Predefinito

    Al lim x non scrivere sempre le stesse cose 10000 volte...potresti usare 1 ciclo che ti va a creare i vari campi input come serve a te.

    Facendo x es: $PAGELLA[$N];

    dove $N è 1 o 2 o 3 o 4 o 5 etc etc.....

  6. #6
    L'avatar di usrisorta
    usrisorta non è connesso Neofita
    Data registrazione
    19-11-2003
    Residenza
    Casalsigone
    Messaggi
    8

    Predefinito

    Grazie mille delle risposte... speravo ci fosse un metodo... alla fine userò un ciclo... grazie ancora a tutti.
    "Un uomo quando si innamora diventa un incapace. Una donna quando si innamora diventa capace di tutto." - Ivan Corellas

Regole di scrittura

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