Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150

    [Php & html] Radio button

    Ciao a tutti.

    Ho un problema con i pulsanti radio.
    Ho costruito un form all'interno di un file php nel modo seguente:

    Codice PHP:
    <table width="80%" cellpadding="5" border="1">
    <form name ="frm1" method="POST" onsubmit ="return checkmod(this)" action ="modifica.php">
    <tr><th>ID</th><th>Nome utente</th><th>Nome e Cognome</th><th>Indirizzo E-mail</th><th>Livello Administrator</th><th>Livello Utente</th></tr>
    <tr>
    <?php

    while($row mysql_fetch_array($result))
    {    
        echo (
    "<td align=center><input type=hidden name=id value=".$row['id_usr']. ">".$row['id_usr']."</td>");
        
        echo (
    "<td align=center><input type=text name=usrname>
    "
    .$row['username']."</td>");    
        echo (
    "<td align=center><input type=text name=fullnm>
    "
    .$row['fullname']."</td>");
        echo (
    "<td align=center><input type=text name=email>
    "
    .$row['email']."</td>");

        if (
    $row['administrator']== "1")
            {
                echo (
    "<td align=center><fieldset>Abilitato<input type=radio name=livadmin1 value=1 checked>
    "
    );
                echo (
    "Non abilitato<input type=radio name=livadmin0 value=0 disabled></fieldset></td>");
            }
        else 
        {    
            echo (
    "<td align=center><fieldset>Abilitato<input type=radio name=livadmin1 value=1 disabled>
    "
    );
            echo (
    "Non abilitato<input type=radio name=livadmin0 value=0 checked></fieldset></td>");
        }
        
        
        if (
    $row['enabled']== "1")
        {
            echo (
    "<td align=center><fieldset>Abilitato<input type=radio name=livuser1 value=1 checked>
    "
    );
            echo (
    "Non abilitato<input type=radio name=livuser0 value=0 disabled></fieldset></td>");
        }
        else 
        {    
            echo (
    "<td align=center><fieldset>Abilitato<input type=radio name=livuser1 value=1 disabled>
    "
    );
            echo (
    "Non abilitato<input type=radio name=livuser0 value=0 checked></fieldset></td>");
        }    
        echo 
    "
    "
    ;
        
        
    }

    ?>
    </tr>
    </table>


    <input type = "reset" value="Cancella">
    <td><input type="submit" value="Modifica">

    </form>
    Ora il problema e' nei check di administrator e enabled.

    Il mio intento e' il seguente:
    nella tabella del mio db, administrato e enabled sono campi ENUM che valgono o 0 o 1.
    Ora , a secondo di come ogni utente ha settato questi due valori, io vorrei far comparire dei box radio con abilitato il box opportuno e disabilitato l'altro box (e fin qui va bene, il codice e' corretto).

    Il mio itento era pero' un altro, ovver:

    mettere checked il box opportuno, ma non disabilitare l'altro box perche' in caso vorrei modificarlo.
    Prima pero' non riuscivo, perche' nonostante siano dei radio box, se andavo a cliccare l'altro box non mi deselezionava l'altro, e mi trovato con due box su due selezionati.

    Pero' in questa pagina io vorrei poter modificare questi dati e settare diversamente alcuni permessi.

    Se ad esempio sul controllo di administrator scrivo questo codice:

    Codice PHP:
    if ($row['administrator']== "1")
            {
                echo (
    "<td align=center><fieldset>Abilitato<input type=radio name=livadmin1 value=1 checked>
    "
    );
                echo (
    "Non abilitato<input type=radio name=livadmin0 value=0></fieldset></td>");
            }
        else 
        {    
            echo (
    "<td align=center><fieldset>Abilitato<input type=radio name=livadmin1 value=1>
    "
    );
            echo (
    "Non abilitato<input type=radio name=livadmin0 value=0 checked></fieldset></td>");
        } 
    Il risultato e' il seguente:



    Avete dei suggerimenti su come risolvere il problema?

    ciao

  2. #2
    se vuoi che i checkbox si gesticano da soli il selezionato devi dargli lo stesso name in questo modo tra tutti quelli con lo stesso name ne verrà selezionato solo 1
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    devi dare lo stesso name ai radio che fanno parte dello stesso gruppo.

    Inoltre non posso fare a meno di notare che l'html non è dei più belli...

    in questo codice ci sono 3 errori,
    1. Non metti gli apici attorno agli attributi, questo può creare casini soprattutto nel value, quando questo contiene degli spazi.
    2. checked="checked", ogni attributo è formato da chiave=valore
    3. Il campo input non è chiuso.
    errato
    codice:
    <input type=radio name=livadmin0 value=0 checked>
    giusto
    codice:
    <input type="radio" name="livadmin0" value="0" checked="checked" />
    infine... non dovresti usare le tabelle per la formattazione di una pagina...
    scusa ma visto che c'ero ho fatto un po' il pignolo


  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    Ci mancherebbe
    Cmq ho risolto, era il nome.

    Gli apici non li ho messi perche' all'interno di codice php, se metto gli apici mi da errore.

    Corro a modificare

    ciao e grazie ancora.

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da Skaffa
    Gli apici non li ho messi perche' all'interno di codice php, se metto gli apici mi da errore.
    io preferisco la prima:

    codice:
    echo '<input type="hidden" />';
    echo "<input type='hidden' />";
    echo "<input type=\"hidden\" />";
    echo '<input type=\\'hidden\\' />';

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    Sto facendo un po di confuzione ora con i singoli apici mmm.

    Dove sbaglio secondo voi?

    Codice PHP:
    echo '<div id="navigation"><h2>[url="modifica_utente.php?id_usr=$id"]Form di modifica[/url]</h2></div>';
            echo 
    "$id"
    La variabile $id la ottengo tramite POST (in cima al file):

    $id=$_POST['id'];

    echo "$id"; mi restituisce correttamente l'id, ma con la sintassi :

    <a href="modifica_utente.php?id_usr=$id">

    evidentemente sbaglio qualcosa perche' non riesco a passare l'id tramite URL.

    Dov'è l'errore?

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    Ho risolto tornando ai doppi apici:

    Codice PHP:
    echo "<div id=navigation><h2><a href=modifica_utente.php?id_usr=$id>Form di modifica</a></h2></div>"

  8. #8
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da Skaffa
    [...]
    Dov'è l'errore?
    perchè le variabili tra apici singoli non vengono interpretate:

    codice:
    $id = 10;
    
    echo "$id"; // 10
    echo '$id'; // $id
    In effetti ti ho detto che preferivo la prima soluzione dimenticando di dirti che in questi casi devi fare una concatenzazione:

    codice:
    echo '<input type="hidden" value="'.$id.'" />';
    ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    grazie, gentile come sempre

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.