webForumDet fria alternativet

Inget händer när jag klickar i radioknapp

ASP

11 svar · 309 visningar · startad av plelkes

Medlem sedan mars 2002823 inlägg
Frågan#1

Har gjort mitt första försök med radioknappar, men inget händer tyvärr...
Koden ser ut som följer:

ar = Request.Form("Year")
manad = Request.Form("month")
'//för att kolla om val redan gjorts
If len(ar)= 0 Then
    ar = Year(Now())
Else
ar = Request.Form("Year")
End IF
	If len(manad)= 0 Then
    	manad = Month(Now())
	Else
		manad = Request.Form("month")
	End IF
%>
<FORM METHOD="POST" ACTION="" >
<INPUT TYPE="RADIO" NAME="prev"> Föregående Månad <BR>
<INPUT TYPE="RADIO" NAME="nasta"> Nästa Månad <BR>
<INPUT TYPE="SUBMIT" VALUE="Visa">
</FORM>
<%
stPrevious = Request("prev")
strNasta = Request("nasta")
	If strPrevious = "on" Then
		manad = manad - 1
			If manad = 0 Then 
				manad = 12 
				ar = ar - 1
			End If
	Response.Write "Om föregående månad: " & manad & "<BR>" & ar & "<BR>"
	Else
			If strNext = "on" Then
				manad = manad + 1
					If manad = 13 Then 
						manad = 1 
						ar = ar + 1
					End If
Response.Write "Om Nästa månad: " & manad & "<BR>" & ar & "<BR><HR>"

			End If
	End If

Men som sagt så händer inget, inte ens Response.Write satserna skrivs ut

Ändå tycker jag att jag "tänker" rätt...

  1. Jag använder radioknappar för att det bara finns ett val

  2. Eftersom jag inte tilldelar ngn “value” använder jag mig av ”on”

  3.  If strPrevious = "on" Then
           manad = manad – 1
    

    Betyder väl att om rutan är markerad?

Medlem sedan nov. 20011 551 inlägg
#2

du har lite vajsing med radioknapparna

kollade som hastigast, detta funkar:

ar = ar
manad = manad
'//för att kolla om val redan gjorts
If len(ar)= 0 Then
    ar = Year(Now())
Else
ar = ar
End IF
	If len(manad)= 0 Then
    	manad = Month(Now())
	Else
		manad = manad
	End IF
%>
<FORM METHOD="POST" ACTION="" >
<INPUT TYPE="RADIO" NAME="month" value="prev"> Föregående Månad <BR>
<INPUT TYPE="RADIO" NAME="month" value="next"> Nästa Månad <BR>
<INPUT TYPE="SUBMIT" VALUE="Visa">
</FORM>
<%
stradio = Request("month")

	If stradio = "prev" Then
		manad = manad - 1
			If manad = 0 Then 
				manad = 12 
				ar = ar - 1
			End If
	Response.Write "Om föregående månad: " & manad & "<BR>" & ar & "<BR>"
	Else
			If stradio = "next" Then
				manad = manad + 1
					If manad = 13 Then 
						manad = 1 
						ar = ar + 1
					End If
Response.Write "Om Nästa månad: " & manad & "<BR>" & ar & "<BR><HR>"

			End If
	End If	%>

radioknappar har samma namn men olika värde, därför kan man gruppera dem...
Medlem sedan mars 2002823 inlägg
#3

Tack hopparn,
det funkar men inte tillfredställnade...
kolla här

  1. Första gången sidan laddas, så fungerar både framåt och bakåt
  2. Man om jag från juli (dvs ett steg bakåt) vill gå ett steg framåt, då hamnar jag på september - vilket är iof ett steg från dagens månad, men inte ett steg framåt från juli....
  3. Om jag klickar bakåt från juli (dvs 2 steg från "början") - händer inget
  4. Gå till januari - klicka på nästa - då blir det september - i stället för februari
  5. klicka på föregående - då blir det juli - i stället för december, 2002
Medlem sedan feb. 200112 078 inlägg
#4

Var någonstans tar du emot värdena som skickas så att de spara tills nästa gång man skickar sidan? Så som det ser ut nu kommer det ju inte att funka. Testa det här.

ar = request.form("actYear")
manad = request.form("actMonth")
stradio = Request("month")

	'//för att kolla om val redan gjorts
	If len(ar)= 0 Then
		ar = Year(Now())
	Else
		ar = ar
	End IF
	
	If len(manad)= 0 Then
		manad = Month(Now())
	Else
		manad = manad
	End IF
	
	If stradio = "prev" Then
		manad = manad - 1
			If manad = 0 Then 
				manad = 12 
				ar = ar - 1
			End If
		action = "prev"
	Elseif stradio = "next" Then
		manad = manad + 1
			If manad = 13 Then 
				manad = 1 
				ar = ar + 1
			End If
		action = "next"
	End If
	
%>
<FORM METHOD="POST" ACTION="" >
<INPUT TYPE="RADIO" NAME="month" value="prev"> Föregående Månad <BR>
<INPUT TYPE="RADIO" NAME="month" value="next"> Nästa Månad <BR>
	<INPUT TYPE="hidden" NAME="actMonth" value="<% =manad %>">
	<INPUT TYPE="hidden" NAME="actYear" value="<% =ar %>">
<INPUT TYPE="SUBMIT" VALUE="Visa">
</form>
<%
if action = "prev" then
	Response.Write "Om föregående månad: " & manad & "<BR>" & ar & "<BR>"
else
	Response.Write "Om Nästa månad: " & manad & "<BR>" & ar & "<BR><HR>"
end if
%>

RED. Bugg.

Medlem sedan mars 2002823 inlägg
#5

Var någonstans tar du emot värdena som skickas så att de spara tills nästa gång man skickar sidan?

Hur menar du?

Ett problem är att så som jag har tänkt så skall man kunna välja månad från en "drop-down" och år genom att hellt enkelt skriva in året i en "textruta".
Med de relevanta kodbitarna

<%

ar = Request.Form("Year")
manad = Request.Form("month")
'//för att kolla om val redan gjorts
If len(ar)= 0 Then
    ar = Year(Now())
Else
ar = Request.Form("Year")
End IF
	If len(manad)= 0 Then
    	manad = Month(Now())
	Else
		manad = Request.Form("month")
	End IF

dNewDate = ar & "-" & manad & "-" & iDag
For iDag = 1 to DatePart("d", DateSerial(ar, manad+1, 0)) 
	aDagar(iDag) = WeekDayName(DatePart("w",ar & "-" & manad & "-" & iDag))
	iWeekDay = DatePart("w",ar & "-" & manad & "-" & iDag)
	

%>
<FORM ACTION="" METHOD="post">
  <TABLE WIDTH="500" BORDER="1" ALIGN="CENTER" CELLPADDING="1" CELLSPACING="1" ID="val">
    <TR> 
      <TD WIDTH="119" HEIGHT="30"><CENTER>
          V&auml;lj &Aring;r (&Aring;&Aring;&Aring;&Aring;)</CENTER></TD>
      <TD WIDTH="50" HEIGHT="30"> <DIV ALIGN="LEFT"> 
          <INPUT NAME="Year" TYPE="text" SIZE="10" MAXLENGTH="4">
        </DIV></TD>
      <TD><CENTER>V&auml;lj M&aring;nad 
        </CENTER></TD>
      <TD><SELECT NAME="month" SIZE="1">
          <OPTION VALUE="1">Januari</OPTION>
          <OPTION VALUE="2">Februari</OPTION>
          <OPTION VALUE="3">Mars</OPTION>
          <OPTION VALUE="4">April</OPTION>
          <OPTION VALUE="5">Maj</OPTION>
          <OPTION VALUE="6">Juni</OPTION>
          <OPTION VALUE="7">Juli</OPTION>
          <OPTION VALUE="8">Augusti</OPTION>
          <OPTION VALUE="9">September</OPTION>
          <OPTION VALUE="10">Oktober</OPTION>
          <OPTION VALUE="11">November</OPTION>
          <OPTION VALUE="12">December</OPTION>
        </SELECT></TD>
    </TR>
    <TR> 
      <TD COLSPAN="4" HEIGHT="30"> <DIV ALIGN="RIGHT">
          <INPUT TYPE="submit" NAME="Submit" VALUE="Visa Almanacka">
        </DIV></TD>
    </TR>
  </TABLE>
</FORM>
</BODY>
</HTML>
</BODY>
</HTML>

Vet jag inte riktigt vart OveRRidE´s förslag skall "få plats"

Kanske kan/bör man lösa det hela genom att skicka radioknapparna till en egen sida, och där ersätta koden med OveRRidE´s förslag??

Medlem sedan mars 2002823 inlägg
#6

Kanske kan/bör man lösa det hela genom att skicka radioknapparna till en egen sida, och där ersätta koden med OveRRidE´s förslag??

Nej! x( funkar inte alls
Får inte till det hela x( x(

Medlem sedan mars 2002823 inlägg
#7

Eftersom i enlighet med OveRRidE´s förslag

ar = request.form("actYear")
manad = request.form("actMonth")
stradio = Request("month")

bara gäller om ngn av radioknapparna är markerade, har jag gjort nedanstående förslag

<%
ar = Request.Form("Year")
manad = Request.Form("month")
'//för att kolla om val redan gjorts
If len(ar)= 0 Then
    ar = Year(Now())
Else
ar = Request.Form("Year")
End IF
	If len(manad)= 0 Then
    	manad = Month(Now())
	Else
		manad = Request.Form("month")
	End IF

	If stradio = "prev" Then
            ar = request.form("actYear")
            manad = request.form("actMonth")
            stradio = Request("month")
	    manad = manad - 1
			manad = manad - 1
			If manad = 0 Then 
				manad = 12 
				ar = ar - 1
			End If
		action = "prev"
	Elseif stradio = "next" Then
		ar = request.form("actYear")
                 manad = request.form("actMonth")
               stradio = Request("month")
				manad = manad + 1
			If manad = 13 Then 
				manad = 1 
				ar = ar + 1
			End If
		action = "next"
	End If
	
	
%>
<FORM METHOD="POST" ACTION="" >
<INPUT TYPE="RADIO" NAME="month" value="prev"> Föregående Månad <BR>
<INPUT TYPE="RADIO" NAME="month" value="next"> Nästa Månad <BR>
	<INPUT TYPE="hidden" NAME="actMonth" value="<% =manad %>">
	<INPUT TYPE="hidden" NAME="actYear" value="<% =ar %>">
<INPUT TYPE="SUBMIT" VALUE="Visa">
</form>
<%
if action = "prev" then
	Response.Write "Om föregående månad: " & manad & "<BR>" & ar & "<BR>"
else
	Response.Write "Om Nästa månad: " & manad & "<BR>" & ar & "<BR><HR>"
end if

%>

Detta sätter dock manad = prev eller manad = next...

Blir bara mera och mer förvirrad och tunnhårig x(

Medlem sedan mars 2002823 inlägg
#8

Nu har jag hållit på med detta hela kvällen igår, och dagen idag - tur att jag hade ledig dag från jobbet ;)
För att inte inlägget skall bli så långt så bifogar jag koden i kod.zip

Om jag fattade era råd rätt - så har jag gjort två sidor:

  • skrivbords.asp - den sida där man väljer år och månad via formulär
  • skrivbords2.asp - den sida som man hamnar på när man vill blädra fram och tillbaka

Radioknapparna på skrivbords.asp fungerar bra - det kontollerade jag med Response.Write. då ACTION="".

Nu till problemet som jag inte har lyckats trots OveRRidE´hjälp. Till mitt misslyckande bidrar även att jag inte riktigt förstår hur jag skall lösa det hela:

  1. Jag har ställt ACTION="skrivbords2.asp"
  2. Det jag vill göra - och hoppas att jag gör - är att manad och ar tar med sig det värde som tilldelades med markeringen av radioknappen.
  3. Sedan nästa gång jag markerar en av radioknapparna, så används det värde på manad och ar som tilldelats i förra omgången ( i punkt 1)
  4. ]och fortsätter sålänge jag använder mig utav radioknapparna

Snälla gurus - hjälp mig

Medlem sedan mars 2002823 inlägg
#9

Snälla ni,

Hjälp mig!!!!!!!!!!!!!!!!!!!!!!! :q :q :q

Medlem sedan mars 20015 287 inlägg
#10

typ...

Medlem sedan mars 2002823 inlägg
#11

tack solbulle för att du hjälpte mig :birp
Jag var iaf på rätt väg verkar det som, men som vanligt verkar jag ha krånglat till koden en smula...

En liten fråga bara:
är det för att du har tilldelat radioknapparna ett värde vi slipper kolla om de är markerade?

Medlem sedan mars 20015 287 inlägg
#12

Eftersom jag ger alla formfält som kan innehålla månaden samma namn så behövs det ju ingen koll just på ett separat formelement.
Kommer det ingen månad postad så används Now().

307 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
164 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
161 ms — ändringar (db)