查看: 65|回复: 15

[问与答] 麻烦各位老师指点!

[复制链接]
贝利 发表于 2020-7-5 07:03:05 | 显示全部楼层 |阅读模式
麻烦各位老师指点一下,加粗字体部分不弹出窗口,是什么原因?虽然不弹出窗口,但能正常运行。

思路是预约信息(时间和预约人)提交后,
先查询库里有没有和时间重复的,如果有就弹出窗口,重新录入
如果没有,再查询库里有没有重名的,如果有就弹出窗口,重新录入
如果都没有,就把提交的信息保存到数据库里。

<%
riqi=Replace(Request.Form("riqi"),"'","''")
lifashi=Replace(Request.Form("lifashi"),"'","''")
shijianduan=Replace(Request.Form("shijianduan"),"'","''")
username=Session("username")
address3 = request.servervariables("REMOTE_ADDR")      
date2=now()
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("ip.mdb")
    set rs = conn.execute("select * from ip where riqi=#"&riqi&"#  and shijianduan like '%"&shijianduan&"%' and lifashi like '%"&lifashi&"%'")
     if not rs.eof then
         Response.Write "<script>alert('该时间段已被预约!请约其他时间段!');window.window.location.href='main.asp';</script>"
                 rs.close:set rs = nothing
else
set rs1 = conn.execute("select * from ip where riqi=#"&riqi&"#  and username like '%"&username&"%' and username not like '星辉' and username not like '戈松'")
     if not rs1.eof then

         Response.Write "<script>alert('一天只能预约一次!请先取消今天的预约');window.window.location.href='main.asp';</script>"


                 rs1.close:set rs1 = nothing
         else        
         sql="insert into ip (address3,date2,shijianduan,lifashi,riqi,username,mobile,bumen)values('"&address3&"','"&date2&"','"&shijianduan&"','"&lifashi&"','"&riqi&"','"&Session("username")&"','"&session("mobile")&"','"&session("bumen")&"')"
         conn.execute sql
         conn.close
End If
response.Redirect("main.asp")
rs.close:set rs = nothing
conn.Close:set conn = nothing
End If
%>
xuanxiao 发表于 2020-7-12 17:56:12 | 显示全部楼层
  1.   Response.Write "<script>alert('一天只能预约一次!请先取消今天的预约');window.location.href='main.asp';</script>"
复制代码


正确写法
 楼主| 贝利 发表于 2020-7-13 18:45:44 来自手机 | 显示全部楼层
谢谢老师,我试了一下,还是不行。您看第一个条件语句我也是这样写的,能正常运行。并且我把这两个弹出语句换个位置,还是前一个能弹出,后一个不能弹出。我觉得原因是if语句嵌套的不对。
xuanxiao 发表于 2020-7-14 09:44:48 | 显示全部楼层
贝利 发表于 2020-7-13 18:45
谢谢老师,我试了一下,还是不行。您看第一个条件语句我也是这样写的,能正常运行。并且我把这两个弹出语句 ...
  1. <%
  2. riqi=Replace(Request.Form("riqi"),"'","''")
  3. lifashi=Replace(Request.Form("lifashi"),"'","''")
  4. shijianduan=Replace(Request.Form("shijianduan"),"'","''")
  5. username=Session("username")
  6. address3 = request.servervariables("REMOTE_ADDR")      
  7. date2=now()
  8. set conn=server.createobject("adodb.connection")
  9. conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("ip.mdb")

  10. '//第一步:先查询库里有没有和时间重复的,如果有就弹出窗口,重新录入
  11. set rs = conn.execute("select * from ip where riqi=#"&riqi&"#  and shijianduan like '%"&shijianduan&"%' and lifashi like '%"&lifashi&"%'")
  12. if not rs.eof then
  13. Response.Write "<script>alert('该时间段已被预约!请约其他时间段!');window.location.href='main.asp';</script>"
  14. rs.close:set rs = nothing
  15. end if

  16. '//第二步:查询库里有没有重名的,如果有就弹出窗口,重新录入

  17. set rs1 = conn.execute("select * from ip where riqi=#"&riqi&"#  and username like '%"&username&"%' and username not like '星辉' and username not like '戈松'")
  18. if not rs1.eof then
  19. Response.Write "<script>alert('一天只能预约一次!请先取消今天的预约');window.location.href='main.asp';</script>"
  20. rs1.close:set rs1 = nothing

  21. '//第三步:写入数据库
  22.       
  23. sql="insert into ip (address3,date2,shijianduan,lifashi,riqi,username,mobile,bumen)values('"&address3&"','"&date2&"','"&shijianduan&"','"&lifashi&"','"&riqi&"','"&Session("username")&"','"&session("mobile")&"','"&session("bumen")&"')"
  24. conn.execute sql

  25. conn.Close:set conn = nothing
  26. response.Redirect("main.asp")

  27. %>
复制代码


帮你梳理了下,看看
 楼主| 贝利 发表于 2020-7-14 12:43:17 来自手机 | 显示全部楼层
好的,谢谢老师,我试一下!
 楼主| 贝利 发表于 2020-7-14 14:45:57 来自手机 | 显示全部楼层
老师,我试了下不行,您给个邮箱吧,我把源文件给您,请您帮忙看看,多谢。
xuanxiao 发表于 2020-7-14 14:59:06 | 显示全部楼层
贝利 发表于 2020-7-14 14:45
老师,我试了下不行,您给个邮箱吧,我把源文件给您,请您帮忙看看,多谢。

support@ttasp.com 发这个
 楼主| 贝利 发表于 2020-7-15 08:04:53 来自手机 | 显示全部楼层
老师,我给您发过去了,请查收,多谢!
xuanxiao 发表于 2020-7-16 17:12:14 | 显示全部楼层
贝利 发表于 2020-7-15 08:04
老师,我给您发过去了,请查收,多谢!

微信图片_20200716170443.png

你字段应该设置为日期型,然后前端代码逻辑稍微有些问题。整理了下

Site_E.rar (474.56 KB, 下载次数: 1, 售价: 10 个ASP币)
 楼主| 贝利 发表于 2020-7-16 17:44:27 来自手机 | 显示全部楼层
好的,谢谢老师,回家再调试一下。
 楼主| 贝利 发表于 2020-7-17 10:34:48 来自手机 | 显示全部楼层
调试成功,感谢!
 楼主| 贝利 发表于 2020-7-17 10:37:28 来自手机 | 显示全部楼层
好了,谢谢老师,再请教一下,在选择时间段时,如果在12点,我选择10:40——11:20,提示“您选的时间已过期”,怎么才能把我选择的字符串转换成时间,再和现在的时间比较。
xuanxiao 发表于 2020-7-17 17:05:16 | 显示全部楼层
贝利 发表于 2020-7-17 10:37
好了,谢谢老师,再请教一下,在选择时间段时,如果在12点,我选择10:40——11:20,提示“您选的时间已过 ...


你自己试试,里面有数组分割,时间处理等基础的东西,可以学学。

QQ截图20200717170355.png
1.rar (475.22 KB, 下载次数: 1, 售价: 15 个ASP币)
 楼主| 贝利 发表于 2020-7-18 14:05:45 | 显示全部楼层
set rs1 = conn.execute("select * from ip where riqi=#"&riqi&"#  and username ='"&username&"'")

好的,谢谢老师,上次那个语句。为什么加这一句就好了?
if not rs1.eof then
        Response.Write "<script>alert('一天只能预约一次!请先取消今天的预约');window.location.href='main.asp';</script>"
                rs1.close:set rs1 = nothing
                response.End()
end if
加这段代码有什么作用?
Function Print(str)
response.Write str
End Function

Function Print_Out(str)
response.Write str
response.End()
End Function

谢谢老师指点!
xuanxiao 发表于 2020-7-19 09:44:26 | 显示全部楼层
贝利 发表于 2020-7-18 14:05
set rs1 = conn.execute("select * from ip where riqi=#"&riqi&"#  and username ='"&username&"'")

  ...

只是两个函数,没啥用。核心问题是你数据库设计不对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表

在线客服

售前咨询
售后咨询
服务热线
023-58418553
微信公众号