webForumDet fria alternativet

Urval från checkbox

ASP

5 svar · 477 visningar · startad av wazid

Medlem sedan maj 2001156 inlägg
Frågan#1

Hej

Jag får inte ordning på rval som görs baserat på vilka checkboxar som är förkryssade.

Detta alternativ fungerar, och då är Block av typen tal :

If Request.form("urval")="blocks" Then Visa = "SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Block IN (" & Request.Form("checkbox3") & ")"

Detta alternativ vill inte välja ut rätt poster. Language är av typen text :

If Request.form("urval")="language" Then Visa = "SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Language IN '"&Request.Form("checkbox2")&"' "

Jag kör mot en Access-databas.

Någon som vet vad jag gör för fel.

MvH

David

Medlem sedan juni 200032 967 inlägg
#2
  1. se till att du har apostroferna med i checkboxarnas värde, det skall ju vara apostrofer runt varje enskilt värde. <input type="checkbox" name="foo" value="'1'">.
    2):
If Request.form("urval")="language" Then Visa = "SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Language IN ("&Request.Form("checkbox2")&")"

Mvh,

Medlem sedan maj 2001156 inlägg
#3

Hej

Jag har apostroferna på plats.
Det är min "Visa" sträng som ger felmeddelande.
Utskriven är den :

SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Language IN ('English', 'German')

David

Medlem sedan nov. 20017 144 inlägg
#4

Vad är din "visasträng"?
Vad får du för felmess?

Medlem sedan nov. 20017 144 inlägg
#5

SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Language IN ('English', 'German')

Är apostrofen dubbel eller enkla?

Medlem sedan maj 2001156 inlägg
#6

Jag blir tokig snart.
Jag kollar mina "Visa"-strängar och kör dem direkt som frågor inne i Access. Då fungerar de!

Men på ASP-sidan fungerar inte en av dem.

Denna funkar :

SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Land IN ('Austria', 'Sweden')

Denna funkar inte :

SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Language IN ('English', 'German')

Den ger felmeddelande :

Technical Information (for support personnel)

Error Type:
(0x80004005)
Unspecified error
/aldea/sendmessage.asp, line 38

Browser Type:
Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)

Page:
POST 119 bytes to /aldea/sendmessage.asp

POST Data:
action=send&Rubrik=&Meddelande=&urval=language&checkbox2=%27English%27&checkbox2=%27German%27&Submit=Skicka+Meddelandet

Rad 38 : RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic

Här är hela koden :

<%Option Explicit%>
<!-- #include file="adovbs.inc" -->
<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
' Kontroll av rättigheter för sidan.
If Session("username") = "" Then Response.Redirect "default.asp"
If Session("access") <> "A" Then Response.Redirect "noaccess.asp"
%>
<html>
<head>
<title>Skicka meddelande</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000" class="vanlig">
<div align="center"> <span class="Rubrik">Send mail to selected members</span> <br><br>
<%
Server.ScriptTimeout = 600 
Dim JMail, Connect, RecSet, Visa, meddelande, rubrik, RecSet2, Visa2
Dim i
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("..\db\aldeadata.mdb")&" "

meddelande=Request.Form("Meddelande")
'Replace(RecSet("Text"), vbCrLf, "<BR>")
rubrik=Request.Form("Rubrik")
'Funktion som mailar uppgifter till registrerad epostadress-----------------------------------------------------------------------------
If Request.Form("action")="send" Then
Visa = "SELECT * FROM Members WHERE Epost<>'' AND Status=20"
	If Request.form("urval")="all" Then Visa = "SELECT * FROM Members WHERE Epost<>'' AND Status=20"
	If Request.form("urval")="blocks" Then Visa = "SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Block IN (" & Request.Form("checkbox3") & ")"	
	If Request.form("urval")="national" Then Visa = "SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Land IN (" & Request.Form("checkbox1") & ")"
	If Request.form("urval")="language" Then Visa = "SELECT * FROM Members WHERE Epost<>'' AND Status=20 AND Language IN (" & Request.Form("checkbox2") & ")" 
	Set RecSet = Server.CreateObject("ADODB.Recordset")
	RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic  
		Do Until RecSet.EOF
'			Set JMail = Server.CreateObject("JMail.SMTPMail") 
'			Jmail.LazySend = True
'			JMail.ServerAddress = "smtp.sepawa.org"
'			JMail.Sender = "info@sepawa.org" 
'			JMail.Subject = Rubrik
	'		JMail.AddRecipient RecSet("Epost")
	'		JMail.Body = meddelande&" "&VbCrLf&"Dina inloggningsuppgifter till Sepawa Norden : [url]www.sepawa.org[/url]"&VbCrLf&"Användarnamn : "&RecSet("Username")&VbCrLf&"Lösenord : "&RecSet("Password")&""
	'		JMail.Priority = 3
	'		JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
	'		JMail.Execute
	'		Set JMail=Nothing
			Response.write "Skickar meddelande till "&RecSet("Epost")&"<BR>"
		RecSet.MoveNext
		Loop
		RecSet.Close
Else
%>
  <form name="form1" method="post" action="sendmessage.asp">
	<p>
      <input type="hidden" name="action" value="send">
      <b>Header:</b><br>
      <input type="text" name="Rubrik" size="40">
      <br>
      <br>
      <br>
      <b class="Rubrik">Message body:</b><br>
      <textarea NAME="Meddelande" ROWS="30" COLS="60"></textarea>
    </p>
    <p>
	<table width="100%" border="1" cellspacing="0" cellpadding="0">
      <tr> 
        <td colspan="2" class="Rubrik"> Select to which this message will be sent 
          to</td>
      </tr>
      <tr> 
        <td> 
          <input type="radio" name="urval" value="all" checked>
        </td>
        <td class="vanlig"> Send to all members.</td>
      </tr>
      <tr> 
        <td> 
          <input type="radio" name="urval" value="national">
        </td>
        <td class="vanlig">Send to all members in following countries :<br>
		<%		
	Set RecSet2 = Server.CreateObject("ADODB.Recordset")
	   Visa2 = "SELECT * FROM Lander ORDER BY Land ASC"
	   RecSet2.Open Visa2, Connect, adOpenStatic, adLockOptimistic 
	   While (NOT RecSet2.EOF)
		%><input type="checkbox" name="checkbox1" value="'<%=RecSet2("Land")%>'"><%=RecSet2("Land")%><%
	  RecSet2.MoveNext()
	Wend
	RecSet2.Close	   %>
		</td>
      </tr>
	  <tr> 
        <td> 
          <input type="radio" name="urval" value="language">
        </td>
        <td class="vanlig">Send to all members who prefers the following language :<br>
          <input type="checkbox" name="checkbox2" value="'English'">English 
          <input type="checkbox" name="checkbox2" value="'German'">German 
          <input type="checkbox" name="checkbox2" value="'French'">French
          <input type="checkbox" name="checkbox2" value="'Scandinavian'">Scandinavian
		</td>
      </tr>
      <tr> 
        <td> 
          <input type="radio" name="urval" value="blocks">
        </td>
        <td class="vanlig">Send message to members in following blocks :<br>
          <% For i = 1 to 17 	 %>
	          <input type="checkbox" name="checkbox3" value="<%=i%>">
          <%=i%> 
          <% Next %>
        </td>
      </tr>
    </table>
	<br>	<br>      <br>
      Press button ONCE to send the message. It may take many minutes!<BR>
      <input type="submit" name="Submit" value="Skicka Meddelandet">
  </form>
<%
End If
Connect.Close
%>
</div>
</body>
</html>

Både Land och Language är av typen Text.

255 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)