Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: input type su array

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505

    input type su array - ignoranza, questa sconosciuta...

    credo di aver appena scoperto una cosa che mi semplificherà la vita di molto, ma prima voglio una conferma dalle vostre menti brillantissime

    io ho sempre attuato questa tecnica (in php), avendo (per esempio) più input type generati da un ciclo for :
    codice:
    $var=0;
    <input type="text" id="inputa" name="<?="name".$var" value="<?=$var++?>" />
    <input type="hidden" name="maxelem" value="<?=sizeof(vettoreciclo)?>"
    così, lato server prendevo la variabile maxelem e sfogliavo tutto il vettore (prendendomi le variabili text dal vettore POST.

    tutto questo perchè non sapevo fosse possibile memorizzare i dati dentro a degli array.

    poi ho letto un pò di codice, e scopro che se faccio una cosa del genere (sempre dentro a un ciclo):
    codice:
    $var=0;
    <input type="text" name="vett[]" value="<?=$var++?>">
    ottengo la stessa cosa, ma in POST manda un vettore invece che n variabili, sfogliabili (per esempio) con un foreach lato server.

    tutto questo è vero? ed è supportato da qualsiasi browser?

    non ci posso ancora credere...

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    sbagliato sezione?
    altrimenti spiega che c'entra con HTML

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    bhè... gli input field son nativi dell'html giusto? quindi nessuno più di voi sà spiegarmi se impostare un array su questi field dà dei problemi in qualche ambito, o se è uno standard supportato da tutti i browser!

    perchè ve lo giuro per me è una bella scoperta...di tutte le guide che ho letto a riguardo non ho mai letto di questa possibilità!!!!

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    posta l'html generato

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    il codice è questo :

    codice:
    // controllo lato server
    if (isset($_POST['cbid'])) {
        foreach ($_POST['cbid'] as $k=>$trackid) {
            $delete=mysql_query("DELETE FROM catetracklist WHERE idcate='".$_GET['category']."' AND trackid='$trackid'",$mydb);		
        }
    }
    
    // pagina php
    <form method='POST' action='./index.php?status=editcategory&category=<?=$_GET['category']?>' name="editcat">
        <?
            while ($row = mysql_fetch_array($query, MYSQL_NUM)) {																	
                ?>
                    <input type="checkbox" value="<?=$row[0]?>" name="cbid[]"/></font>
                <?											
            }
        ?>
        Edit
    </form>
    in questo esempio ho usato dei checkbox, ma suppongo sia valido anche per i type="text"...

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    a parte che non ho capito ancora dove, e se c'è, problema...

    posta SOLO l'html generato

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    uhm, mi sà che non ci stiamo capendo. non c'è problema, quello script generato funziona!!!

    voglio solo sapere se settando all'attributo name delle input type un valore come "nomevar[]" mi crea sempre un vettore di nome nomevar con all'interno i contenuti del value per i vari input type, oppure sè dà problemi in qualche modo (magari su vari browser).

    perchè io pensavo non fosse possibile passare al server degli array, ma solo delle variabili, tutto quì

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    Originariamente inviato da markzzz
    uhm, mi sà che non ci stiamo capendo. non c'è problema, quello script generato funziona!!!

    voglio solo sapere se settando all'attributo name delle input type un valore come "nomevar[]" mi crea sempre un vettore di nome nomevar con all'interno i contenuti del value per i vari input type, oppure sè dà problemi in qualche modo (magari su vari browser).
    se ho capito bene... no, nessun problema.
    e se ce ne fossero, così ad occhio, non ne capirei il motivo se non per un codifica errata

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    dopo mesi e mesi che programmo in php/html ho scoperto solo oggi che tramite POST e GET posso inviare anche vettori di variabili, non solo variabili!

    avrei potuto risparmiarmi tanto di quel lavoro....

    meglio tardi che mai... grazie per la conferma!

  10. #10
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non puoi inviare vettori di variabili... stai in ogni caso inviando una stringa di valori separati da virgole, e' il normale comportamento del browser che concatena tutti i valori degli elementi del form che hanno lo stesso nome, questo viene poi sfruttato in PHP per trasformare la stringa in vettore (tant'e' che la stessa cosa non si puo' sfruttare in ASP )

    Se ci pensi bene e' il funzionamento normale delle <select multiple> ed anche la garanzia che tutti i valori del form vengano inviati, anche quando qualcuno sbaglia nell'assegnare nomi uguali ai vari campi

    Tieni inoltre presente che adottare questo "trucco" impedisce al javascript di individuare ed accedere al valore del singolo elemento.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.