2013-11-02 4 views
0

Поэтому я пытаюсь разрешить администраторам удалять комментарии к сообщениям с условным оператором if. На первом этапе администратор может выбрать переключатель, связанный с каждым сообщением, и его значение должно быть передано на этап 2, где он будет удален через переменную deleteComment. Тем не менее, я отлажена заявление и распечатывают сказал, что никаких данных не передается:Почему данные не передаются из формы с использованием ASP?

удалить * из Commentstable где ID =

Microsoft ошибка JET Database Engine '80040E14'

Ошибка синтаксиса (отсутствующий оператор) в выражении запроса 'ID ='.

/courses/benv/2410/2013s2/3420384/assign4/post.asp, линия 138

код ниже.

<% option explicit %> 
<!DOCTYPE HTML> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <link rel="stylesheet" type="text/css" href="normalize.css"> 
    <script src="jquery.js"></script> 
    <link rel="stylesheet" type-"text/css" href="960_12_col.css"> 
    <link rel="stylesheet" type-"text/css" href="style.css"> 

</head> 
<body> 
<!--#include file="header.asp"--> 
<!--#include file="dbconn.asp"--> 

    <div class="content"> 

<div class="content-inner container_12"> 

    <div class="wrapper prefix_2 grid_8 suffix_2"> 
<% 
    dim pic 
    pic = request.querystring("i") 
    if pic="" then pic="1" 


    dim stage, s 
    stage = request.form("stage") 
    if stage = "" then stage=1 

    dim SQL, info 
'          0   1      2       3   4    5    6   
SQL = "select ProjectsTable.ID, projectName, Projectstable.description, pictureURL, username, category, created "&_ 
     "from ProjectsTable, usertable, categorytable "&_ 
      "where ProjectsTable.usernum = usertable.id AND ProjectsTable.categorynum = categorytable.id "&_ 
     "and projectstable.id="&pic 

    set info=conn.execute(SQL) 

    if info.eof then 
     response.write "No data found." 
    end if 
     response.write  "<div class=""post"">"&_ 
         "<h1>" & info(1) & "</h1>"&_ 
         "<ul class=""byline"">"&_ 
           "<li> By " & info(4) & "</li>"&_ 
         "<li> on " & info(6) & "</li>"&_ 
         "<li> in " & info(5) & "</li>"&_ 
         "</ul>"&_ 
         "<a class=""feature-image"" href=""post.asp?i=" & info(0) & """>" &_ 
           "<img src=" & info(3)&"""></a><br>"&_ 
         "<p>" & info(2) & "</p>" 

     response.write "<h3> Comments </h3>" 


'------------------------------------------------------------------ 
    if stage = 1 then 
'------------------------------------------------------------------ 
if Session("username")="" then 
    Response.write "<a href=login.asp>Login to comment</a>" 
    else 



response.write "<form action="""" method=""post"">" &_ 
       "<input type=""hidden"" name=""stage"" value=""2"">" &_ 
       "<label for=""post"">Comment</label>" &_ 
       "<textarea id=""post"" name=""comment""></textarea><br>" &_ 
       "<input id=""add-comment"" class=""button"" type=""submit"" value=""Add comment"">" &_ 
       "</form><br>" 

end if 

     '       0   1    2   3 
    sql = "select commentstable.id, comment, commentDate, username " &_ 
      "from CommentsTable, usertable " &_ 
      "where usertable.id = commentstable.usernum " &_ 
     "AND projectNum="&pic &_ 
      " order by commentDate DESC" 

     set info=conn.execute(SQL) 

     if info.eof then 
    response.write "No Comments." 
     else 

     if Session("usertype")="2" then 

     do 


      response.write "<form action=""post.asp"" method=""post"">"&_ 
          "<input type=""hidden"" name=""stage"" value=""2"">"&_ 
          "<label for=""delete""></label>"&_ 
          "<input id=""delete"" type=""radio"" name=""commentobedeleted"" value=""" &_ 
          info(0) & """>"&_ 
          info(3) & " Posted at: " & info(2) & " " & info(1) &_ 
          "<br>" &_ 
          "</form>"        


      info.movenext 

      loop until info.eof 

      response.write "<input class=""button"" type=""button"" value=""Delete Comment"">" 

          else 

          do 

          response.write "<p>" & info(3) & " Posted at: " & info(2) & " " & info(1) & "</p>" 

       info.movenext 

      loop until info.eof 

    end if 







    end if 



'-------------------------------------------------------------------- 
    elseif stage = 2 then 
'-------------------------------------------------------------------- 
    dim deleteComment 
    deleteComment = Request.Form("commentobedeleted") 
    sql = "delete * from Commentstable where ID="&deleteComment 
    response.write(SQL) 
conn.execute(sql) 
    response.write "<p>Comment deleted.</p>" 


    dim comment, u, uid, p_info 
    comment=Request.Form("comment") 
    u=Session("username") 

    '    0   
    sql = "select usertable.id "&_ 
      "from usertable where username='"&u&"'" 
    set info=conn.execute(sql) 
    uid = info(0) 

    sql="insert into CommentsTable (comment, usernum, projectNum) "&_ 
     "values ('" & comment & "', " & uid & ", " & pic & ")" 
      conn.execute sql 

    '     0   
    sql = "select projectstable.id "&_ 
      "from projectstable " 
    set p_info=conn.execute(sql) 

    sql="insert into CommentsTable (projectNum) "&_ 
     "values (" & p_info(0) & ")" 
      conn.execute sql 

     '       0   1    2   3 
    sql = "select CommentsTable.ID, comment, commentDate, username " &_ 
      "from CommentsTable, usertable " &_ 
      "where usertable.id = commentstable.usernum " &_ 
      "AND projectNum="&pic &_ 
     " order by commentDate DESC" 

     set info=conn.execute(SQL) 

     response.write "<form action="""" method=""post"">" &_ 
          "<input type=""hidden"" name=""stage"" value=""2"">" &_ 
         "Comment: " &_ 
         "<textarea id=""post"" name=""comment""></textarea><br>" &_ 
         "<input id=""add-comment"" class=""button"" type=""submit"" value="" add comment "">" &_ 
         "</form>" 


    if info.eof then 
    response.write "No Comments." 
    end if 

     if Session("usertype")="2" then 

     do 

     response.write "<form action=""post.asp"" method=""post"">"&_ 
          "<input type=""hidden"" name=""stage"" value=""2"">"&_ 
          "<label for=""delete""></label>"&_ 
          "<input id=""delete"" type=""radio"" name=""commentobedeleted"" value=""" &_ 
          info(0) & """>"&_ 
          info(3) & " Posted at: " & info(2) & " " & info(1) &_ 
          "<br>" &_ 
          "</form>" 

     info.movenext 

      loop until info.eof 

      response.write "<input class=""button"" type=""button"" value=""Delete Comment"">" 

          else 

          do        


      response.write "<p>" & info(2) & " Posted at: " & info(1) & " " & info(0) & "</p>" 



     info.movenext 

     loop until info.eof  

     end if       

'------------------------------------------------------------------ 
    end if ' stage 
    '------------------------------------------------------------------ 

    conn.close 

%> 

    </div> 


    </div> 

</div> 

</div> 
<!--#include file="footer.asp"--> 
</body> 
</html> 
+0

Вы можете сделать «view-> source» этапа 1 и посмотреть, добавляется ли идентификатор в качестве значения для переключателя? и, чтобы не задавать очевидный вопрос, проверяете ли вы радио перед отправкой? – SearchAndResQ

+0

@SearchAndResQ Да, идентификатор добавляется к значению для каждого переключателя. Да, я действительно подчинился. – chap

ответ

3

Вы генерируете одну <form> для каждого из комментариев, а один <form>, который включает в себя все кнопки радио для комментариев. И ваша кнопка удаления находится вне всех форм. Какую форму он представляет?

Смежные вопросы