Just nu i M3-nätverket
Gå till innehåll

Request.Form


.mixon

Rekommendera Poster

Jag är total nybörjare på ASP.NET och vet att mina kunskaper i ASP3.0 ligger mig i fatet.

 

Jag har ännu inte satt mig i ASP.NET på allvar men jag behöver ha hjälp med följande för att få en .aspx/VB-sida att fungera.

 

Edit: Kan tillägga att jag ägnat morgonen åt att söka på e-forum efter en lösning, dock utan resultat. /Edit

 

På sidan finns ett formulär med bl.a. 2 radioknappar:

<asp:RadioButton id="Registrera" Text="registrera" Checked="True" GroupName="Nyhetsbrev" runat="server" />
<asp:RadioButton id="Avregistrera" Text="avregistrera" GroupName="Nyhetsbrev" runat="server"/>

 

Samma sida tar emot värdena från forumläret och här vill jag ha ett villkor. I vanlig ASP hade jag skrivit såhär:

 

If Request.Form("Nyhetsbrev") = "Registrera" Then
ElseIf Request.Form("Nyhetsbrev") = "Avregistrera" Then
End If

 

Och givetvis funkar inte detta i ASP.NET. Någon som vet hur jag ska skriva för att få fram värdet på radioknappen då formuläret är skickat?

 

Tack på förhand!

[inlägget ändrat 2005-05-18 11:03:42 av .mixon]

Länk till kommentar
Dela på andra webbplatser

Hej!

 

If Page.IsPostBack Then

If Registrera.Checked = True Then

Else

End If

End If

 

alternativt...

 

<asp:RadioButtonList id="Registrera" runat="server" RepeatDirection="Horizontal">

<asp:ListItem Value="On" Selected="True">registrera</asp:ListItem>

<asp:ListItem Value="Off">avregistrera</asp:ListItem>

</asp:RadioButtonList>

 

 

If Page.IsPostBack Then

If Registrera.SelectedItem.Value = "On" Then

Else

 

End If

End If

 

 

/PJ

 

Länk till kommentar
Dela på andra webbplatser

Tack för snabbt svar!

 

Har nu testat att skriva:

If Page.IsPostBack Then
If Registrera.Checked = True Then

ElseIf Avregistrera.Checked = True Then

End If

 

Fast jag får samma resultat = koden ignoreras och det som står efter 'Then' skrivs inte ut på sidan.

 

Länk till kommentar
Dela på andra webbplatser

Visst, inga problem :)

[log]

<%

If Request.QueryString("visa") = "skickat" Then

%>

<br>

Tack! Ditt meddelande &auml;r mottaget.

<p>

<%

If Page.IsPostBack Then

If Registrera.Checked = True Then

%>

V&aring;rt n&auml;sta nyhetsbrev kommer att skickas till din e-postadress.

<%

ElseIf Avregistrera.Checked = True Then

%>

Din e-postadress har strukits fr&aring;n v&aring;rt utskicksregister.

<%

End If

End If

Else

%>

<h4>Nyhetsbrev</h4>

Varje m&aring;nad ger vi ut ett nyhetsbrev d&auml;r vi...

<p>

Skriv in din e-postadress i f&auml;ltet nedan och markera om du vill registrera eller avregistrera dig f&ouml;r nyhetsbrevet.

Din e-postadress kommer endast att sparas i v&aring;rt adressregister f&ouml;r utskick av nyhetsbrevet.

<br><br>

Vi accepterar inte e-postadresser av typen hotmail, spray, yahoo eller liknande.

</p>

 

<form id="newsletter" runat="server">

<asp:TextBox id="Email_Adress" runat="server" Columns="30" TabIndex="1"></asp:TextBox>

<asp:Button type="submit" id="Button" runat="server" Text="OK"></asp:Button>

<br>

<asp:RadioButton id="Registrera" Text="registrera" Checked="True" GroupName="Nyhetsbrev" runat="server" /><br>

<asp:RadioButton id="Avregistrera" Text="avregistrera" GroupName="Nyhetsbrev" runat="server"/>

 

</form>

<%

End If

%>

[/log]

 

Sen har jag lite validatorer som kontrollerar att det är en reell e-postadress som användaren matar in, men de utelämnade jag nu eftersom de inte har med problemet att göra.

 

Länk till kommentar
Dela på andra webbplatser

Hej igen!

 

Så här får du göra...

 

<%@ Page Language="vb" %>
<script language="vb" runat="server">
Sub Page_Load(sender as Object, e as EventArgs)
	If page.isPostback Then
		lbResult.Visible = True
		If Email_Adress.Text.Length > 0 Then 
			If Registrera.Checked = True Then
				lbResult.Text = "Vårt nästa nyhetsbrev kommer att skickas till din e-postadress."
			Else
				lbResult.Text = "Din e-postadress har strukits från vårt utskicksregister."
			End If
		Else
			lbResult.Text = "Du har inte skrivit in någon emailadress!"
		End If
	End If
End Sub
</script>
<HTML>
<HEAD>
	<title>nyhetsbrev</title>
</HEAD>
<body>
	<form id="newsletter" method="post" runat="server">
		<h4>Nyhetsbrev</h4>
		Varje månad ger vi ut ett nyhetsbrev där vi...
		<p>
			Skriv in din e-postadress i fältet nedan och markera om du vill registrera 
			eller avregistrera dig för nyhetsbrevet. Din e-postadress kommer endast att 
			sparas i vårt adressregister för utskick av nyhetsbrevet.
			<br>
			<br>
			Vi accepterar inte e-postadresser av typen hotmail, spray, yahoo eller 
			liknande.
		</p>
		<P>
			<asp:TextBox id="Email_Adress" runat="server" Columns="30" TabIndex="1"></asp:TextBox>
			<asp:Button id="Button" runat="server" Text="OK"></asp:Button>
			<br>
			<asp:RadioButton id="Registrera" Text="registrera" Checked="True" GroupName="Nyhetsbrev" runat="server" /><br>
			<asp:RadioButton id="Avregistrera" Text="avregistrera" GroupName="Nyhetsbrev" runat="server" /></P>
		<p>
			<asp:Label id="lbResult" runat="server" Font-Bold="True" ForeColor="Red" Visible="False" /></p>
	</form>
</body>
</HTML>

 

/PJ

 

[inlägget ändrat 2005-05-18 13:41:16 av PJP]

Länk till kommentar
Dela på andra webbplatser

Tack för att du försöker hjälpa till, det uppskattas.:thumbsup:

 

Testade först att infoga de delar av ditt exempel i min kod men det funkade inte.

 

I andra försöket kopierade jag ditt exempel samt lade till de saker som krävs för att få forumläret att skickas, men inte heller det funkade.

 

Kan man verkligen inte bara kontrollera vad en formulärvariabel har för värde liknande proceduren i ASP3.0?

 

Länk till kommentar
Dela på andra webbplatser

Hej igen!

 

Exemplet du fick av mig fungerar när jag kör koden. Mao så är det något annat i din kod som är felaktigt.

 

I andra försöket kopierade jag ditt exempel samt lade till de saker som krävs för att få forumläret att skickas, men inte heller det funkade.

 

Kan du komplettera koden med de saker du har lagt till?

 

/PJ

 

Länk till kommentar
Dela på andra webbplatser

[log]<%@ Register TagPrefix="n0" Namespace="By360Impact.AutoEmail" Assembly="By360Impact.AutoEmail"%>

<%@ Page Language="vb" %>

<script language="vb" runat="server">

Sub Page_Load(sender as Object, e as EventArgs)

If page.isPostback Then

lbResult.Visible = True

If Email_Adress.Text.Length > 0 Then

If Registrera.Checked = True Then

lbResult.Text = "Vårt nästa nyhetsbrev kommer att skickas till din e-postadress."

Else

lbResult.Text = "Din e-postadress har strukits från vårt utskicksregister."

End If

Else

lbResult.Text = "Du har inte skrivit in någon emailadress!"

End If

End If

End Sub

</script>

<HTML>

<HEAD>

<title>nyhetsbrev</title>

</HEAD>

<body>

<form id="newsletter" method="post" runat="server">

<h4>Nyhetsbrev</h4>

Varje månad ger vi ut ett nyhetsbrev där vi...

<p>

Skriv in din e-postadress i fältet nedan och markera om du vill registrera

eller avregistrera dig för nyhetsbrevet. Din e-postadress kommer endast att

sparas i vårt adressregister för utskick av nyhetsbrevet.

<br>

<br>

Vi accepterar inte e-postadresser av typen hotmail, spray, yahoo eller

liknande.

</p>

<P>

<asp:TextBox id="Email_Adress" runat="server" Columns="30" TabIndex="1"></asp:TextBox>

<asp:Button id="Button" runat="server" Text="OK"></asp:Button>

<br>

<asp:RadioButton id="Registrera" Text="registrera" Checked="True" GroupName="Nyhetsbrev" runat="server" /><br>

<asp:RadioButton id="Avregistrera" Text="avregistrera" GroupName="Nyhetsbrev" runat="server" /></P>

<p>

<asp:Label id="lbResult" runat="server" Font-Bold="True" ForeColor="Red" Visible="False" /></p>

<n0:AutoEmail id="AutoEmail1" RedirectURL="nyhetsbrev.aspx?visa=skickat" IncludeUserIdentity="True" HTMLTemplateFile="nyhetsbrevtemplate.html" HTMLFormat="True" AR_ToAddr="" AR_Subject="" AR_TemplateFile="" MailFromAddr="<#Email_Adress#>" MailSubject="Nyhetsbrev" runat="server" MailToAddr="mail@adress.se" MailServer="172.16.0.4"></n0:AutoEmail>

</form>

</body>

</HTML>[/log]

 

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Byt koden scriptblocket till denna och testa igen.

 

<script language="vb" runat="server">

Sub Page_Load(sender as Object, e as EventArgs)

If page.isPostback Then

lbResult.Visible = True

If Email_Adress.Text.Length > 0 Then

If Registrera.Checked = True Then

lbResult.Text = "Vårt nästa nyhetsbrev kommer att skickas till din e-postadress."

Else

lbResult.Text = "Din e-postadress har strukits från vårt utskicksregister."

End If

AutoEmail1.Initiate()

Else

lbResult.Text = "Du har inte skrivit in någon emailadress!"

End If

End If

End Sub

</script>

 

/PJ

 

Länk till kommentar
Dela på andra webbplatser

Hej igen!

 

Glömde en sak.

Lägg till detta i n0:AutoMail taggen...

 

 

AutoInitiate="False"

 

ex.

 

<n0:AutoEmail AutoInitiate="False" id="AutoEmail1" RedirectURL="nyhetsbrev.aspx?visa=skickat" IncludeUserIdentity="True" HTMLTemplateFile="nyhetsbrevtemplate.html" HTMLFormat="True" AR_ToAddr="" AR_Subject="" AR_TemplateFile="" MailFromAddr="<#Email_Adress#>" MailSubject="Nyhetsbrev" runat="server" MailToAddr="mail@adress.se" MailServer="172.16.0.4"></n0:AutoEmail>

 

/PJ

 

Länk till kommentar
Dela på andra webbplatser

Nu ser koden ut såhär (endast dina förslag till ändringar gjorda) men ändå samma resultat (ingen inläsning av värdet på radioknappen).

 

[log]<%@ Register TagPrefix="n0" Namespace="By360Impact.AutoEmail" Assembly="By360Impact.AutoEmail"%>

<%@ Page Language="vb" %>

<script language="vb" runat="server">

Sub Page_Load(sender as Object, e as EventArgs)

If page.isPostback Then

lbResult.Visible = True

If Email_Adress.Text.Length > 0 Then

If Registrera.Checked = True Then

lbResult.Text = "Vårt nästa nyhetsbrev kommer att skickas till din e-postadress."

Else

lbResult.Text = "Din e-postadress har strukits från vårt utskicksregister."

End If

AutoEmail1.Initiate()

Else

lbResult.Text = "Du har inte skrivit in någon emailadress!"

End If

End If

End Sub

</script>

<HTML>

<HEAD>

<title>nyhetsbrev</title>

</HEAD>

<body>

<form id="newsletter" method="post" runat="server">

<h4>Nyhetsbrev</h4>

Varje månad ger vi ut ett nyhetsbrev där vi...

<p>

Skriv in din e-postadress i fältet nedan och markera om du vill registrera

eller avregistrera dig för nyhetsbrevet. Din e-postadress kommer endast att

sparas i vårt adressregister för utskick av nyhetsbrevet.

<br>

<br>

Vi accepterar inte e-postadresser av typen hotmail, spray, yahoo eller

liknande.

</p>

<P>

<asp:TextBox id="Email_Adress" runat="server" Columns="30" TabIndex="1"></asp:TextBox>

<asp:Button id="Button" runat="server" Text="OK"></asp:Button>

<br>

<asp:RadioButton id="Registrera" Text="registrera" Checked="True" GroupName="Nyhetsbrev" runat="server" /><br>

<asp:RadioButton id="Avregistrera" Text="avregistrera" GroupName="Nyhetsbrev" runat="server" /></P>

<p>

<asp:Label id="lbResult" runat="server" Font-Bold="True" ForeColor="Red" Visible="False" /></p>

<n0:AutoEmail AutoInitiate="False" id="AutoEmail1" RedirectURL="nyhetsbrev.aspx?visa=skickat" IncludeUserIdentity="True" HTMLTemplateFile="nyhetsbrevtemplate.html" HTMLFormat="True" AR_ToAddr="" AR_Subject="" AR_TemplateFile="" MailFromAddr="<#Email_Adress#>" MailSubject="Nyhetsbrev" runat="server" MailToAddr="ljungbyhed@ibl.se" MailServer="172.16.0.4"></n0:AutoEmail>

</form>

</body>

</HTML>[/log]

 

Förvisso jättekul om vi får det att funka men roligare hade varit om jag hade förstått Sub:ens funktion i det hela ;)

 

Länk till kommentar
Dela på andra webbplatser

Hej igen!

 

I min miljö så fungerar det utan problem.

 

Ett par frågor...

 

Har du placerat By360Impact.AutoEmail.dll och din licensfil i bin-mappen?

 

Har du kört min kod utan AutoEmail koden?

 

(Om svaret är ja på båda frågorna så har jag nog inga fler förslag).

 

/PJ

 

Länk till kommentar
Dela på andra webbplatser

1. Ja, jag har .dll:er och licensfiler i Bin-mappen.

 

2. Nej, men jag testade nu och då funkar din kod. Alltså måste det ha med AutoEmail-koden att göra... men på vilket sätt? Det är frågan.

 

Tack för länktips och din hjälp PJ (poäng utdelad för uthållighet)! :thumbsup:

 

[inlägget ändrat 2005-05-18 16:20:03 av .mixon]

Länk till kommentar
Dela på andra webbplatser

Hej igen och tack för poängen. :)

 

Plocka bort RedirectURL="nyhetsbrev.aspx?visa=skickat" och kör igen.

 

/PJ

 

Länk till kommentar
Dela på andra webbplatser

Ja! Det verkade som om det gjorde susen! :) Poäng igen!

 

Nu är det bara estetiken kvar. Kan man få så att formuläret döljs då det är så att man skickat iväg sin mailadress? Som det är nu så dyker meddelandetexten om registrering/avregistrering upp under formuläret.

 

Edit: Jag får fortsätta knåpa på detta imorgon, arbetsdagen är ju slut nu. ;)/Edit

[inlägget ändrat 2005-05-18 16:37:03 av .mixon]

Länk till kommentar
Dela på andra webbplatser

<script language="vb" runat="server">

Sub Page_Load(sender as Object, e as EventArgs)

If page.isPostback Then

lbResult.Visible = True

If Email_Adress.Text.Length > 0 Then

If Registrera.Checked = True Then

lbResult.Text = "Vårt nästa nyhetsbrev kommer att skickas till din e-postadress."

Else

lbResult.Text = "Din e-postadress har strukits från vårt utskicksregister."

End If

AutoEmail1.Initiate()

Email_Adress.Visible = False

Registrera.Visible = False

Avregistrera.Visible = False

Button.Visible = False

Else

lbResult.Text = "Du har inte skrivit in någon emailadress!"

End If

End If

End Sub

</script>

 

Länk till kommentar
Dela på andra webbplatser

Perfekt!

 

Bara för att vara lite besvärlig... om jag nu vill dölja texten också när man registrerat/avregistrerat sig, hur gör jag då?

 

Jag testade med att lägga texten i en placeholder och skrev sen

introtext.visible = false men det funkade inte. Jag får felmeddelandet att "introtext is not declared".

 

Länk till kommentar
Dela på andra webbplatser

Hej igen!

 

Prova såhär...

 

<script language="vb" runat="server">

Sub Page_Load(sender as Object, e as EventArgs)

If page.isPostback Then

lbResult.Visible = True

If Email_Adress.Text.Length > 0 Then

If Registrera.Checked = True Then

lbResult.Text = "Vårt nästa nyhetsbrev kommer att skickas till din e-postadress."

Else

lbResult.Text = "Din e-postadress har strukits från vårt utskicksregister."

End If

AutoEmail1.Initiate()

Email_Adress.Visible = False

Registrera.Visible = False

Avregistrera.Visible = False

Button.Visible = False

lbIntroText.Visible = False

Else

lbResult.Text = "Du har inte skrivit in någon emailadress!"

End If

Else

lbIntroText.Text = "Varje månad ger vi ut ett nyhetsbrev där vi... " & _

"<p>Skriv in din e-postadress i fältet nedan och " & _

"markera om du vill registrera eller avregistrera dig " & _

"för nyhetsbrevet. Din e-postadress kommer endast att " & _

"sparas i vårt adressregister för utskick av nyhetsbrevet.<br>" & _

"<br>Vi accepterar inte e-postadresser av typen " & _

"hotmail, spray, yahoo eller liknande.</p>"

End If

End Sub

</script>

 

 

====================

 

 

<form id="newsletter" method="post" runat="server">

<h4>Nyhetsbrev</h4>

<asp:Label Id="lbIntroText" runat="server" />

<P>

<asp:TextBox id="Email_Adress" runat="server" Columns="30" TabIndex="1"></asp:TextBox>

<asp:Button id="Button" runat="server" Text="OK"></asp:Button> osv.

 

 

/PJ

 

 

Länk till kommentar
Dela på andra webbplatser

Tack för svar!

 

Men nej, det vill sig inte:

 

[log]<script language="vb" runat="server">

Sub Page_Load(sender as Object, e as EventArgs)

If page.isPostback Then

lbResult.Visible = True

If Email_Adress.Text.Length > 0 Then

If Registrera.Checked = True Then

lbResult.Text = "Vårt nästa nyhetsbrev kommer att skickas till din e-postadress."

Else

lbResult.Text = "Din e-postadress har strukits från vårt utskicksregister."

End If

AutoEmail1.Initiate()

Email_Adress.Visible = False

Registrera.Visible = False

Avregistrera.Visible = False

Button.Visible = False

lbIntroText.Visible = False

Else

lbResult.Text = "Du har inte skrivit in någon emailadress!"

End If

Else

Rad 26: lbIntroText.Text = "Varje månad ger vi ut ett nyhetsbrev där vi..." &_

"<p>Skriv in din e-postadress i fältet nedan och markera om du vill registrera " &_

"eller avregistrera dig för nyhetsbrevet. Din e-postadress kommer endast att " &_

"sparas i vårt adressregister för utskick av nyhetsbrevet.<br><br>" &_

"Vi accepterar inte e-postadresser av typen hotmail, spray, yahoo eller liknande.</p>"

End If

End Sub

</script>

[/log]

 

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Ha du lagt till <asp:Label Id="lbIntroText" runat="server" /> under

<h4>Nyhetsbrev</h4> (se mitt förra inlägg)?

 

Om du har gjort det, vad får du i så fall för felmeddelande?

 

/PJ

 

 

Länk till kommentar
Dela på andra webbplatser

Ja det har jag gjort. Glömde bifoga felmeddelandet ja:

 

BC30203: Identifier expected. (rad 26 markerad)

 

Länk till kommentar
Dela på andra webbplatser

Kontrollera så att du inte har fått någon felaktig radbrytning när du klistrade in koden.

 

Rätt...

 

lbIntroText.Text = "Varje månad ger vi " & _

 

Fel...

 

lbIntroText.Text = "Varje månad

ger vi " & _

 

 

[inlägget ändrat 2005-05-19 14:21:41 av PJP]

Länk till kommentar
Dela på andra webbplatser

Fick det att funka när jag tog bort alla rader utom den första.

 

Såhär:

lbIntroText.Text = "Varje månad ger vi ut ett nyhetsbrev där vi..."

 

Jag har aldrig fått det att fungera med "&_"! Ska det vara mellanslag emellan eller? Får kanske lägga in all text på en rad istället.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...