Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472

    Un chiarimento sul "name" del "form"

    In un form, un <input type="text" name="....."> il name non può assumere valore di un array per esempio name="a[1]" e quindi se io ho bisogno di n elementi con nomi appartenenti a un array come devo fare? (considerando che poi questi valori devo leggerli sia con js che con php).

    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Premessa: l'attributo name nel tag form e` deprecato (vietato in XHTML Strict).

    Ma se comunque vuoi una collezione di oggetti HTML (raggiungibili in JS tramite un vettore), basta che dai lo stesso nome a diversi oggetti.

    Esempio:
    <form id="form1" name="pippo"> ... </form>
    <form id="form2" name="pippo"> ... </form>

    In JS poi puoi indirizzare i due form con:
    codice:
      var fid = new Array();
      var fn = new Array();
      var f_ie = new Array();
      for(var i=0; i<2; i++) {
        fid[i] = document.getElementById("form"+i);
        fn[i] = document.forms["pippo"][i];
        f_ie[i] = document.all("pippo")[i];
      }
    dove i tre vettori sono equivalenti, e puntano agli oggetti definiti dai tag <form>. f_ie e` valido solo nei browser IE, dato che il document.all e` una istruzine proprietaria di quei brwoser.

    Chiaramente il caso con i name non e` applicabile in XHTML 1.0 Strict ne` in XHTML 1.1 e successivi.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    In effetti nel titolo mi sono espresso male.

    Non è tanto il nome del form che mi interessa, nel senso che il form è 1; ciò che devo vettorializzare sono i nomi dei campi input!
    In pratica dovrei fare qualcosa del genere
    <form action="..." name="....">
    [ciclo for in php]
    {
    <input type="text" name="...">

    }
    [termine del ciclo for e ricomincia html]
    <input type="submit" value="invia">

    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Mi sei stato molto utile comunque perché ho capito da me come fare!
    <form>
    <input type="text" name="b">

    <input type="text" name="b">

    <input type="button" onclick="funza()">
    </form>
    <script language="javascript">
    function funza()
    {
    s=new Array();
    for (i=0; i<=1; i++)
    {
    s[i]=document.forms[0].elements[i].value;
    }
    }

    grazie!

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Attenzione che elements e` un vettore che prende tutti gli elementi del form, compreso il button e il submit.

    E gli elementi del form hanno (ancora) il name (necessario per i radio).

    Il ciclo quindi va riscritto (se ho capito cosa vuoi):
    codice:
      var ff = document.getElementById(ID_FORM);
      for (i=0; i<=ff.b.length; i++) {
        s[i] = ff.b[i].value;
      }
    
    oppure (piu` corretto, valido anche per XHTML):
    
      var ff = document.getElementById(ID_FORM);
      for (var i=0,j=0; i<=ff.elements.length; i++) {
        if(ff.elements[i].name == "b") {
          s[j++] = ff.elements[i].value;
        }
      }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Sì così vedo che è più corretto! Grazie mille!

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Mi ero occupato della parte grafica per qualche giorno.....così devo rispolverare questo vecchio thread per chiedere un'altra cosa...

    ok per leggerli in js ma per leggerli in php come devo fare?

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da mld
    ok per leggerli in js ma per leggerli in php come devo fare?
    Ma hai sbagliato forum.
    Io personalmente non lo so (mail lavorato con PHP).
    Ti conviene fare una ricerca nei forum JS e/o PHP (bottone in alto); eventualmente chiedi in PHP.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Originariamente inviato da mld
    Mi ero occupato della parte grafica per qualche giorno.....così devo rispolverare questo vecchio thread per chiedere un'altra cosa...

    ok per leggerli in js ma per leggerli in php come devo fare?
    Si fa, ma è da mani nei capelli VVoVe:
    Allora, visto che sono proprio alle prese con un progetto nel quale passo proprio array di campi text, ho scoperto che:

    IE, FF, Opera (per me bastano) inviano (in POST) con un submit le collezioni di campi text così:
    Se:
    codice:
    <input type="text" id="t1" name="campo" />
    <input type="text" id="t2" name="campo" />
    <input type="text" id="t3" name="campo" />
    <input type="text" id="t4" name="campo" />
    Lato server la $_POST["campo"] (ehm .. si scrive così? ho un po' di ruggine sul php)
    contiene la lista dei valori separati da (e qui lo scrivo a lettere) virgola blank
    quindi
    basta effettuare una split della stringa con parametro ", " (virgola blank)
    Da me funziona
    Però se malauguratamente uno dei campi nel suo value ha una stringa che contiene virgola blank tutto va a catafascio .. io l'ho risolto, tanto i miei campi sono solo numerici ed è bastato filtrare l'input ... se dovessero essere alfanumerici ... boh!
    P.S: per scoprirlo, visto che sto sviluppando in asp, mi sono fatto un file asp che mi stampa tutta la collection del corrispondente asp della $_POST php, così ho visto quanti e quali campi passavo ed il loro valore.

    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Sì in effetti ho visto che questo thread era stato spostato...ho chiesto nella sezione php e mi hanno risposto...grazie a tutti!

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