Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606

    [form]campi radio e passaggio di valori

    Ho un form in html come quello qui sotto:
    codice:
    ...
    <input type='radio' id='dominio' name='dominio' />
    <input type='radio' id='no-dominio' name='dominio' />
    ...
    Premendo invio, carico un'altra pagina in cui devo prendere il valore del bottone radio cliccato dall'utente, associandolo ad una variabile.

    Ma non mi ricordo mai come fare per sapere su l'utente ha cliccato uno o l'altro bottone radio
    Tenete presente che i due bottoni sono ad esclusione, ovvero uno esclude l'altro.

    Quindi nel file successivo devo per forza sapere quale bottone è stato premuto, e so che si rileva da un array passato tramite post, in questo caso dominio[].
    Ma non so come leggerlo: $check = $_POST['dominio'] mi da si un valore per $check, ma non mi dice quale dei due è cliccato

  2. #2
    Utente di HTML.it L'avatar di Sgurbat
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    devi mettere anche l'attributo value="" con il rispettivo valore nei campi di input

  3. #3
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    [supersaibal]Originariamente inviato da Sgurbat
    devi mettere anche l'attributo value="" con il rispettivo valore nei campi di input [/supersaibal]
    Ma che c'entrerebbe il campo value? Io ho bisogno di sapere quale dei due bottoni è stato premuto.

    dalla RFC 1866
    8.1.2.4. Radio Button: INPUT TYPE=RADIO

    An <INPUT> element with `TYPE=RADIO' represents a boolean choice. A
    set of such elements with the same name represents a 1-of-many choice
    field. The NAME and VALUE attributes are required as for check boxes.
    Optional attributes are:

    CHECKED
    indicates that the initial state is on.
    At all times, exactly one of the radio buttons in a set is checked.
    If none of the <INPUT> elements of a set of radio buttons specifies
    `CHECKED', then the user agent must check the first radio button of
    the set initially.

    For example:



    Which is your favorite?
    <input type=radio name=flavor value=vanilla>Vanilla

    <input type=radio name=flavor value=strawberry>Strawberry

    <input type=radio name=flavor value=chocolate>Chocolate






    Berners-Lee & Connolly Standards Track [Page 42]
    Mi consigli di dare un valore non univoco agli attributi value e poi di prendere questi come discriminanti dei bottoni?
    Va bene ma con il passaggio di variabili, io controllo il nome del campo, non value, quindi $check = $_POST['dominio'] e non $check = $_POST['si'] ammesso che "si" possa essere il valore immesso nel value di uno dei due radio button.

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    L'attributo value è "indispensabile" per recuperare il valore dall'input. Se provi ad esempio a fare un print_r($_POST) nella pagina che riceve i dati passati dal form, troverai sì il "nome" del campo input (nel tuo caso: dominio) ma il valore sarà "on" nel caso fosse stato selezionato. Oppure un notice se non si seleziona nulla.

    Aggiungi il value al campo e rifai il test...



  5. #5
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    [supersaibal]Originariamente inviato da neida
    L'attributo value è "indispensabile" per recuperare il valore dall'input. Se provi ad esempio a fare un print_r($_POST) nella pagina che riceve i dati passati dal form, troverai sì il "nome" del campo input (nel tuo caso: dominio) ma il valore sarà "on" nel caso fosse stato selezionato. Oppure un notice se non si seleziona nulla.

    Aggiungi il value al campo e rifai il test...


    [/supersaibal]
    ok a domani ora vado a nanna

  6. #6
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Bene, trovato non c'è bisogno di dare un valore ai radio button per sapere quale è stato premuto.

    Ecco come: creato il form con i radio button ...
    codice:
    <input type='radio' name='dominio[0] />
    <input type='radio' name='dominio[1] />
    Nella pagina che rileva le variabili dopo l'invio ...
    codice:
    $check = key($_POST['dominio']);
    $check possiede il nome della chiave dell'array dominio[], in pratica restituisce 0 se premuto dominio[0] e 1 se è stato premuto dominio[1].

    E così via, il metodo è ottimo se associato ad una pagina che costruisce un elenco di radio button dinamicamente, magari da un ciclo di iterazioni.
    Ma ha un difetto: l'html non riconosce strutture ad array, quindi per lui dominio[0] e dominio[1] sono elementi separati e non associati allo stesso gruppo, in pratica non è possibile selezionarli a esclusione.
    Rimane il fatto che comunque il valore inviato tramite POST è quello dell'ultimo radio button su cui ho cliccato.

    Alla fine dovrò dare dei valori ai due radio e la cosa mi scoccia parecchio

  7. #7
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    ...ma non riesco a capire cos'è che ti impedisce di usare un semplicissimo codice tipo questo:
    codice:
    <input type='radio' name='dominio' value='si' checked>
    <input type='radio' name='dominio' value='no'>
    Perché rendere difficile una cosa così semplice? Se l'utente nel compilare il modulo sarà avvisato del fatto che di default la scelta è sul "si" (e ovviamente vedrà l'input radio già selezionato), sarà lui stesso a decidere se lasciarlo così oppure scegliere "no". Poi, senza nessun tipo problema, nella pagina dove resuperi i valori, avrai solo una delle due scelte possibili. Tutto qui...

  8. #8
    Utente di HTML.it L'avatar di Sgurbat
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Tu con PHP non controlli il nome del campo ma il valore ad esso associato, il nome (name) ti serve per poter leggere questi valori da quello specifico campo del form.

    nello specifico i radio button correlati dovranno avere lo stesso name in modo che il valore preso da essi sia univoco (questo è il funzionamento dei radio button)

    Se gli dai due name differenti non sono più mutalmente esclusivi e ne perdi l'utilità.
    Devi usare lo stesso name e indicare per ogni opzioni il relativo valore con l'attributo value.

    Poi fai come vuoi ma evita di rispondere male quando qualcuno cerca di aiutarti.

  9. #9
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    [supersaibal]Originariamente inviato da Sgurbat
    Poi fai come vuoi ma evita di rispondere male quando qualcuno cerca di aiutarti. [/supersaibal]
    Heeeeeee! E dove avrei risposto male di grazia?

    I motivi per cui non volevo usare i campi value sono dovuti al fatto che non voglio far sapere quale valori userò in futuro per implementare la scelta (dominio sì, dominio no)

  10. #10
    Utente di HTML.it L'avatar di Sgurbat
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    "Ma che c'entrerebbe il campo value? Io ho bisogno di sapere quale dei due bottoni è stato premuto. "

    Anchè se non era tua intenzione farlo con questa frase hai risposto come se ti avessimo detto delle cose a caso o campate in aria.

    Cmq niente di male.

    Hai letto il mio ultimo post?

    Chiare le idee?

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.