Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    13

    recuperare valore checkbox da database

    Ciao a tutti,

    da profano nel mondo della programmazione web sto cercando di realizzare un database con interfaccia web (con webmatrix), in modo da rendere più "portabile" il mio lavoro e poter accedere da qualsiasi posizione ad un form dove inserire nuovi clienti e informazioni varie.
    Sto seguendo un tutorial su http://www.asp.net/web-pages/tutoria.../updating-data, però ho aggiunto anche altri elementi rispetto ad esso, come dropdown list, checkbox, ecc...

    Ho due pagine, una per inserire i dati, e l'altra per modificare una voce dal database.

    La pagina per l'inserimento funziona bene direi, o per lo meno per quello che devo fare io se la cava, ma quella di edit no. Non riesco a caricare il valore delle checkbox, che rimangono sempre senza spunta quando vengono caricate. Così quando salvo le modifiche, i valori delle checkbox vengono sempre vuoti.

    Vi posto il codice relativo a quella parte:
    Per quanto riguarda l'inserimento:
    codice:
    @{
    
        var block= "";   
    
        if(IsPost && Validation.IsValid()){
    
            block = Request.Form["block"];
            // verifiche è il nome del database e apparecchio quello della tabella
    
            var db = Database.Open("Verifiche");
    
            var insertCommand = "INSERT INTO Apparecchio (block)" +
             "VALUES(@0)";
            db.Execute(insertCommand, block);
    
    //provashowdata è la pagina con la lista dei records inseriti
            Response.Redirect("~/provashowdata");
        }
    }
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>Aggiungi apparecchio</title>    
    
    </head>
    <body>
      <h1>Aggiungi apparecchio</h1>
      @Html.ValidationSummary()
      <form method="post">
    
       <p>
       <label for="block">Valore</label>
       <input type="checkbox" name="block" value="@Request.Form["block"]" checked />    
       </p>            
    
        <p><input type="submit" name="buttonSubmit" value="Aggiungi apparecchio" /></p>
    
      </form>
    
      <p>
      <a href="~/provashowdata">Vai alla lista apparecchi</a>
      </p>
    </body>
    </html>

    e questo invece il codice che non funziona, quello dell'edit:

    codice:
    @{           
        var block = "";    
    
        if(!IsPost){
            if(!Request.QueryString["id"].IsEmpty() && Request.QueryString["id"].IsInt()) {
                id = Request.QueryString["id"];
                var db = Database.Open("Verifiche");
                var dbCommand = "SELECT * FROM Apparecchio WHERE id = @0";
                var row = db.QuerySingle(dbCommand, id);        
            }
            else{
                Validation.AddFormError("No app was selected.");
            }
        }
    
        if(IsPost){
            block = Request.Form["block"]; 
    
            if(Validation.IsValid()){
                var db = Database.Open("Verifiche");
                var updateCommand = "UPDATE Apparecchio SET block=@0 WHERE Id=@1";
                db.Execute(updateCommand, block);
                Response.Redirect("~/provashowdata");
            }
        }
    }
    
    <!DOCTYPE html>
    <html>
      <head>
       <meta charset="utf-8" />
       <title>Edit app</title>
      </head>
    </head>
    <body>
      <h1>Edit app</h1>
        @Html.ValidationSummary()
      <form method="post">
    
      <p>
      <label for="block">Valore</label>
      <input type="checkbox" name="block" value="@Request.Form["Block"]"  />    
      </p> 
    
      <input type="hidden" name="id" value="@id" />
    
      <p><input type="submit" name="buttonSubmit" value="Submit Changes" /></p>
      </form>
      <p><a href="~/provashowdata">Return to movie listing</a></p>
    </body>
    </html>

    sapete dirmi dove sbaglio? grazie
    Ultima modifica di vaka85; 20-02-2014 a 18:24

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    6
    Quote Originariamente inviata da vaka85 Visualizza il messaggio
    <input type="checkbox" name="block" value="@Request.Form["Block"]" />
    Qui non devi impostare l'attributo value, ma checked. Ed inoltre non devi prenderlo dal form, ma dal relativo campo del database, qualcosa tipo:

    codice:
    <input type="checkbox" name="block" checked="@(row.block != 0)" />

    Ti consiglio poi di dare una bella controllata anche alle parti che ti sembrano funzionanti.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    13
    ti ringrazio, ho infatti risolto così:

    codice:
    var blockbool = false;
    [...]
    blockbool=(row.block!=null)?true:false;
    [...]
    <inputtype="checkbox"name="block"checked="@blockbool"/>
    così funziona.

    Perchè dici di controllare anche le altri parti? Noti degli errori molto evidenti?

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.