Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problemi con una form

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    48

    Problemi con una form

    Ciao a tutti, il mio problema è il segeunte
    ho una form
    <form action='modifier.php?kpt=$primo' method='POST' name='mod' onSubmit=\"return check_form();\">
    .......
    echo "<tr><td><input type='radio' name='scelta' value='".$result[0]."'></td><td>".stripslashes(utf8_encode($result[1]))."</td><td>".stripslashes(utf8_encode($result[2]))."</td>";
    if((mysql_field_name($rs, 3)!='foto') && (mysql_field_name($rs, 3)!='video')){
    echo "<td>".stripslashes(utf8_encode($result[3]))."</td></tr>";
    }
    else
    echo "</tr>";
    }
    }
    echo "</table>
    <input class='sub' type='submit' value='Modifica'></form>
    ";

    Generata dinamicamente da codice php. Questa form come potete vedere rimanda ad uno script js check_form() che mi controlla se i radio sono selezionati. Il codice è questo.
    function check_form() {
    var controllo = false;
    var bottone = document.mod.scelta;
    if(bottone.length == 1){
    controllo = true;
    }
    else{
    for(var i=0; i<bottone.length; i++) {
    if(bottone[i].checked) {
    controllo = true;
    break;
    }
    }
    }
    if(!controllo) {
    alert("Bisogna effettuare almeno una scelta.");
    return false;
    }
    return true;
    }

    Ora se i radio generati sono più di una lo script funziona bene, mentre se me ne da soltanto uno e come se non me lo vedesse e mi ritorna sempre false. Ho provato a cambiare i valori nel ciclo for, ma niente. Come mai?

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    intanto ti invito a postare sempre l' html-tipo risultante da operazioni lato server,
    perche' non e' sempre scontato che, specialmente in questo forum, tutti capiscano asp o php

    poi ti invito a postare il codice tra tag [ code] [ /code] o [ php][ /php] (ovviamente senza gli spazi dopo [) che mantiene l' indentazione e facilita la lettura

    poi, se non c'e' piu' di un elemento con lo stesso nome non si tratta di un array, quindi non ha length
    e mi sembra tu comunque non esegua il controllo se sia segnato o meno in quel caso
    codice:
    ...
    var bottone = document.mod.scelta;
    if(!bottone.length){
      if(bottone.checked) controllo = true;
    }
    else ...
    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    48
    ciao xinod
    grazie per la risposta e scusami per il post un po confusionale!! La prossima volta eseguirò i tuoi suggerimenti.
    Poi, sulla tua risposta, quindi mi stai dicendo che in effetti quando viene generato un solo radio button, non viene inizializzato alcun array, ma parliamo soltanto di un elemento assegnato ad una variabile. Se è così il primo controllo che fai serve proprio a vedere se è un array o no. GIUSTO??

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    corretto

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.