Avatar billede shamrock Nybegynder
26. november 2007 - 10:31 Der er 18 kommentarer og
1 løsning

If sætninger med 5 radiobuttonlist (hvordan)

Hej,

Hvis jeg har 5 spørgsmål i form af radiobuttons der er forholdsvis ja/nej spørgsmål, hvordan samler jeg så det sammen til sidst i en if-sætning?

Jeg forestiller mig noget ligende at der skal laves 5 variabler der hedder spm1, spm2, smp3, sm4 og spm5 hvorefter at sætningen skal værenoget ligende:


if (spm1 == ja) and (sm2 == nej) and (smp3 == nej) and (spm4 == ja) and spm5 == ja)
lblResult.Text = "Du har svaret rigtig på alle spørgsmålene";


else
lblResult.Text = "Du glemte at udfylde en eller flere felter";



Er her nogle der lynhurtigt kan sætte det op som det rigtigt skal se ud?

En ting mere hvis nu svarresultatet en en masse tekst i form af html, er det så samme fremgangsmåde eller er der en mere rigtig måde at gøre det på?
Avatar billede mikkel_sommer Nybegynder
26. november 2007 - 10:38 #1
noget med:

if(RadioButtonList1.SelectedIndex >= 0 || RadioButtonList2.SelectedIndex >= 0 || RadioButtonList3.SelectedIndex >= 0 || RadioButtonList4.SelectedIndex >= 0 || RadioButtonList5.SelectedIndex >= 0)
{
    if(spm1 == "ja" && spm2 == "nej" && spm3 == "nej" && spm4 == "ja" && spm5 == "ja")
    {
        lblResult.Text = "Du har svaret rigtig på alle spørgsmålene";
    }
}
else
{
    lblResult.Text = "Du glemte at udfylde et eller flere felter";
}
Avatar billede mikkel_sommer Nybegynder
26. november 2007 - 10:39 #2
og hvis du skal have besked om forkerte besvarelser med så:

if(RadioButtonList1.SelectedIndex >= 0 || RadioButtonList2.SelectedIndex >= 0 || RadioButtonList3.SelectedIndex >= 0 || RadioButtonList4.SelectedIndex >= 0 || RadioButtonList5.SelectedIndex >= 0)
{
    if(spm1 == "ja" && spm2 == "nej" && spm3 == "nej" && spm4 == "ja" && spm5 == "ja")
    {
        lblResult.Text = "Du har svaret rigtig på alle spørgsmålene";
    }
    else
    {
        lblResult.Text = "Du svarede forkert på et eller flere spørgsmål";

    }
}
else
{
    lblResult.Text = "Du glemte at udfylde et eller flere felter";
}
Avatar billede mikkel_sommer Nybegynder
26. november 2007 - 10:40 #3
hovsa du skal have && i stedet for || i den første if:

if(RadioButtonList1.SelectedIndex >= 0 && RadioButtonList2.SelectedIndex >= 0 && RadioButtonList3.SelectedIndex >= 0 && RadioButtonList4.SelectedIndex >= 0 && RadioButtonList5.SelectedIndex >= 0)
{
    if(spm1 == "ja" && spm2 == "nej" && spm3 == "nej" && spm4 == "ja" && spm5 == "ja")
    {
        lblResult.Text = "Du har svaret rigtig på alle spørgsmålene";
    }
    else
    {
        lblResult.Text = "Du svarede forkert på et eller flere spørgsmål";

    }
}
else
{
    lblResult.Text = "Du glemte at udfylde et eller flere felter";
}
Avatar billede shamrock Nybegynder
26. november 2007 - 17:13 #4
Hej Mikkel

Tusind tak for hjælpen. Overstående virker dog ikke helt.

Er vi enige om at jeg skal definere spm1, spm2 osv som variabler?

F.eks

    char spm1;
    char spm2;
    char spm3;
    char spm4;
    char spm5;

og så skal jeg i selve front-end delen sætte values som ja/nej ?

Feks:

Hvor bor du<br />
<asp:RadioButtonList ID="RadioButtonList2" runat="server" CssClass="radiotext">
<asp:ListItem Value="ja">Jeg bor i Storkøbenhavn</asp:ListItem>
<asp:ListItem Value="nej">Jeg bor ikke i Storkøbenhavn</asp:ListItem>
</asp:RadioButtonList>

Gider du bruge 2 min mere på mig, så vil jeg være dig evig taknemmelig :)
Avatar billede mikkel_sommer Nybegynder
26. november 2007 - 19:49 #5
kun hvis du skal bruge dem til mere end det som sker i denne metode.

Kan forresten godt være at du i if nr 2 skal bruge .value efter hvert spmx

if(RadioButtonList1.SelectedIndex >= 0 && RadioButtonList2.SelectedIndex >= 0 && RadioButtonList3.SelectedIndex >= 0 && RadioButtonList4.SelectedIndex >= 0 && RadioButtonList5.SelectedIndex >= 0)
{
    if(spm1.Value == "ja" && spm2.Value == "nej" && spm3.Value == "nej" && spm4.Value == "ja" && spm5.Value == "ja")
    {
        lblResult.Text = "Du har svaret rigtig på alle spørgsmålene";
    }
    else
    {
        lblResult.Text = "Du svarede forkert på et eller flere spørgsmål";

    }
}
else
{
    lblResult.Text = "Du glemte at udfylde et eller flere felter";
}
Avatar billede mikkel_sommer Nybegynder
26. november 2007 - 19:50 #6
hvilken fejl får du?
Avatar billede mikkel_sommer Nybegynder
26. november 2007 - 19:50 #7
og hvis du vil bruge variabler ville string nok være det oplagte valg, eller bool hvis de altid er ja eller nej.
Avatar billede shamrock Nybegynder
26. november 2007 - 21:25 #8
Hej Mikkel

Nu sidder jeg ikke på min egen pc, så kan ikke tjekke før imorgen tidlig. Jeg kan ikke huske fejlen præcist men tror måske det var i if(spm1 == ) sætningen. Men hvis jeg tilføjer .value fixer det sikkert fejlen ;-)

Hvis jeg benytter navnet "spm1" skal det så ikke defineres et eller andet sted? Lige nu ved programmet jo ikke at RadionButton 1 = smp2..

Beklager hvis det et dumt spørsmål men jeg er kun lige begyndt på programmering :)

En sidste ting, det er C# jeg arbejder i,nu er det ikke VB edet her vel? måske kunne det være fejlen.
Avatar billede shamrock Nybegynder
26. november 2007 - 21:39 #9
Rettelse:
Jeg mener at programmet ikke ved at RadioButton1 = spm1 (og ikke spm2 som jeg kom til at skrive)

:)
Avatar billede mikkel_sommer Nybegynder
27. november 2007 - 09:02 #10
jo hvis du skal bruge svaret andre steder, ellers kan du nøjes med RadioButtonList1.Value, RadioButtonList2.Value osv.

Men skal du bruge dem igen senere i metoden kunne du gøre således (før din if sætning):

string spm1 = RadioButtonList1.Value.ToString();
string spm2 = RadioButtonList2.Value.ToString();
string spm3 = RadioButtonList3.Value.ToString();
string spm4 = RadioButtonList4.Value.ToString();
string spm5 = RadioButtonList5.Value.ToString();
Avatar billede mikkel_sommer Nybegynder
27. november 2007 - 09:04 #11
og nej det er ikke VB, VB er en del anderledes i syntax, du ville vide hvis det var VB ;-)
Avatar billede shamrock Nybegynder
27. november 2007 - 13:19 #12
Hej igen

Jeg får følgende fejl:


Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0117: 'System.Web.UI.WebControls.RadioButtonList' does not contain a definition for 'Value'

Source Error:

Line 11:    {   
Line 12: 
Line 13:    string spm1 = RadioButtonList1.Value.ToString();
Line 14:    string spm2 = RadioButtonList2.Value.ToString();
Line 15:    string spm3 = RadioButtonList3.Value.ToString();




Sådan ser min kode ud:

<script    runat="server">
   
protected void Button1_Click1(object sender, EventArgs e)
    {   
 
    string spm1 = RadioButtonList1.Value.ToString();
    string spm2 = RadioButtonList2.Value.ToString();
    string spm3 = RadioButtonList3.Value.ToString();
    string spm4 = RadioButtonList4.Value.ToString();
    string spm5 = RadioButtonList5.Value.ToString();
   
    if(RadioButtonList1.SelectedIndex >= 0 && RadioButtonList2.SelectedIndex >= 0 && RadioButtonList3.SelectedIndex >= 0 && RadioButtonList4.SelectedIndex >= 0 && RadioButtonList5.SelectedIndex >= 0)
{

    if(spm1 == "ja" && spm2 == "ja" && spm3 == "nej" && spm4 == "nej" && spm5 == "ja")
    {
        lblResult.Text = "Du har svaret rigtig på alle spørgsmålene";
    }
    else
    {
        lblResult.Text = "Du svarede forkert på et eller flere spørgsmål";

    }
}
else
{
    lblResult.Text = "Du glemte at udfylde et eller flere felter";
}
    }
</script>



Jeg ved godt det er mig der ikke forstår det ordentligt endnu, men jeg bliver snart sindssyg!!! :-)
Avatar billede shamrock Nybegynder
27. november 2007 - 13:21 #13
og jeg skal lave flere if-sætninger, så jeg vil meget gerne benytte mig af variabler så det bliver mere overskueligt for mig :)
Avatar billede mikkel_sommer Nybegynder
27. november 2007 - 13:40 #14
My bad ... det er fordi den hedder: SelectedValue

Prøv:

string spm1 = RadioButtonList1.SelectedValue;
string spm2 = RadioButtonList2.SelectedValue;
string spm3 = RadioButtonList3.SelectedValue;
string spm4 = RadioButtonList4.SelectedValue;
string spm5 = RadioButtonList5.SelectedValue;
Avatar billede shamrock Nybegynder
27. november 2007 - 14:39 #15
Jubiii det virker nu :-)

En ALLER sidste ting og så skal jeg nok stoppe;

Når man har svaret på alle 5 spørgsmål får man en af disse meddelelser:

    if(spm1 == "ja" && spm2 == "ja" && spm3 == "nej" && spm4 == "nej" && spm5 == "ja")
    {
        lblResult.Text = "Du har svaret rigtig på alle spørgsmålene";
    }
    else
    {
        lblResult.Text = "Du svarede forkert på et eller flere spørgsmål";

    }


Hvis jeg ønsker at have flere mugligheder for at svare rigtigt (altså flere if-sætninger) hvad er der så galt i dette (jeg får ikke fejl men det virker ikke)


    if(spm1 == "nej" && spm2 == "ja" && spm3 == "nej" && spm4 == "nej" && spm5 == "ja")
    {
        lblResult.Text = "Du har svaret rigtig på alle spørgsmålene";
    }

    if(spm1 == "ja" && spm2 == "ja" && spm3 == "nej" && spm4 == "nej" && spm5 == "ja")
    {
        lblResult.Text = "Du har svaret rigtig på alle spørgsmålene";
    }

    if(spm1 == "ja" && spm2 == "ja" && spm3 == "nej" && spm4 == "nej" && spm5 == "nej")
    {
        lblResult.Text = "Du har svaret rigtig på alle spørgsmålene";
    }

else
{
    lblResult.Text = "Du glemte at udfylde et eller flere felter";
}


Og så smid endelig et svar så du kan få dine meget velfortjente point :)
Avatar billede mikkel_sommer Nybegynder
27. november 2007 - 14:59 #16
Forskellen på nr 1 og n2 if er svaret i spm1 ja/nej, hvis svaret her er lige meget kan du bare fjerne den fra if'en.

Hvis det bare var et tilfældigt eksempel kan du bruge else if:

if(blabla)
else if(blabla)
else if(blabla)
.
.
.
else
Avatar billede mikkel_sommer Nybegynder
27. november 2007 - 15:13 #17
Grunden til at det gik galt for dig er at hvis det eksempelvis er den første if som er sand så vil den 3. være falsk og derfor vil programmet hoppe ind i din else.
Avatar billede shamrock Nybegynder
27. november 2007 - 15:41 #18
Hej Mikkel

Det var blot et eksempel, men er helt med på hvad du mener med at jeg blot kunne fjerne den :)

Jeg sørger for at benytte "else if" istedet for "if" ;-)

Endnu en gang tak for hjælpen, jeg sætter virkelig stor pris på det!!!

Hilsen
Michael
Avatar billede mikkel_sommer Nybegynder
28. november 2007 - 08:31 #19
Velbekommen, skulle det være en anden gang :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester