×

Loading...

Topic

This topic has been archived. It cannot be replied.
  • 工作学习 / IT技术讨论 / ASP大侠们,我在用InterDev做一个小项目(见),显示了数据库中的内容,用户按了其中一个item,就转跳到另一页,在这一页中,要按照刚才用户选择的item显示。怎么做?有全局变量吗?....
    怎么知道用户按的是哪一个item, 怎么传item的值到另一页中?
    • "submit"
    • 有好几种方式:
      1、URL可以传递参数
      2、session
      3、application
      • 我刚开始学asp。能说具体一点吗?非常谢谢!
        • 我已经有段时间没写ASP了,具体程序怎么写我一下子也想不起来,我怕给例子会给错,我手头也没有帮助文件。推荐一个网站:http://www.chinaasp.com/active/default.asp,上面有很多例子。
          • 我手头有很多书,因为很急,没办法一个一个去研究了。如果你能说个大概,我就可以马上查书。是不是用什么VBscript 中的某个object?
            • 首先呢,先别急,慢慢来,总能解决问题的,对吧?心急吃不了热豆腐......
              你说的item具体的值应该是字符串,对吧?
              建议使用form,就是写一段程序,
              <form name=myform method=post action="target.asp">
              (我不记得是不是action了,具体查一查form的写法)
              <input type=submit name="aaa">
              ......
              </form>

              当你按下"aaa",其中......的内容会传递到target.asp中去,在target.asp使用request.myform("aaa")就可以接收到......的值了。
              • 谢谢,蚂蚁MM,慢慢来^_^。我试试看!
    • antmm, bingle, help! 我很着急,在赶这个项目。
      • 我的建议1- 用session变量eg:in asp you use: Session("MyVariable") = MyValue, then use this varaible in any asp page in the same application, which means all pages are in the same virtually directory.
        2- 在asp page之间传递变量eg: in a asp page, you write:
        <% dim MyPara
        MyPara = "Good Night"
        response.redirect( "AnotherASPPage.asp?" & sever.HTMLEncode (MyPara))
        %>
        用这种方法的缺点是,如果你要在所有的page中使用相同的变量职的话,你必须不厌其烦的在每个page之间不断的股捣传递变量,所以建议你用session.
        • 怎么知道是用户按了哪一行呢?我用的查询方式是:
          OBJECT1.Open ("MY_database")
          Set RS = OBJECT1.Execute("SELECT * FROM ProductGroup")

          然后显示 RS 的内容。
    • Antmm,NightLight 和 其他大侠,用antmm的方法会显示《提交查询内容》几个字。实际上我的要求是:
      原来是用html写的,有几行比如:

      1. content1
      2. content2
      ...
      5. content5

      用户按第几行就跳到一个html页,原来的语句是:

      <a href="content1.htm" target="searchresult">

      有5行就写5个这样的句子。

      现在要用动态的。不知道有几行,(从数据库中读出的),然后都转到同一个asp中,在新asp中判断是第几行,并显示相应的内容。

      怎么做呢?我真发愁!

      非常感谢!
      • 方法是要想一想的:)
        1、我原来做过的一种处理方法是:在写的时候不是要写for i=1 to n语句么?直接把序号写到页面上去,可以用hide属性的一个submit提交,然后就可以读出来了。

        2、或者用session,直接定义一个session变量,session变量在一个浏览器应用是有效的,跳转过去的页面直接读session变量就可以了,简单是挺简单。但是,使用session变量要考虑一个超时的问题,就是说超时的话session变量的值就读不出来了,怪烦的。

        Good luck!
        • 谢谢antmm. 我试了用session,可以传变量值。可问题是,我怎么知道用户按了第几行?用for 是显示出来,用户按的时候,怎么知道?
    • 你就不会动态生成显示数据库内容者夜的连接吗,可急死我了
      原来是用html写的,有几行比如:

      1. content1
      2. content2
      ...
      5. content5

      用户按第几行就跳到一个html页,原来的语句是:

      <a href="content1.htm" target="searchresult">

      有5行就写5个这样的句子。

      现在要用动态的。不知道有几行,(从数据库中读出的),然后都转到同一个asp中,在新asp中判断是第几行,并显示相应的内容。

      你写成这样:
      <%do while not rs.eof%>
      <a href="searchresult.asp?itemid=<%=rs.itemid%> "> <%=rs.item%></a>
      <%loop%>

      //searchresult.asp中这样接:

      <%
      dim itemid
      itemid=request.querystring("flag")

      //此处再用itemid的值写SQL,什么任务不都完成了嘛。

      %>

      不过我劝你还是别学了,国内至少有1000万人会写,而且其中999万在失业。
      • 不错,我猜这就是aboat要的程序!
      • 非常感谢你的帮助,虽然你的话让人很失望。不过这次一定要把它做出来,已经答应别人了,天天熬夜也得做出来:-( 还要请你帮忙:
        这句:
        <a href="searchresult.asp?itemid=<%=rs.itemid%> "> <%=rs.item%></a>

        我是这样写的:

        <a href="searchresult.asp?itemid=<%=rs(0)%> "> <%=rs(0)%></a>

        在searchresult.asp 中怎样简单看出itemid的值?它是一个变量吗?我直接打
        <%=itemid> 没有显示任何东西。

        也许我提的问题太荒谬,可我是一点也不懂asp, 不管你们怎么笑话,我是没办法一定要作完的:-(
        再次谢谢你的帮助!
        • itemid并不是一个具体的概念。你可以理解它是该数据库表的主键。看来还得好好补补数据库啊。
      • I got it! Should be: <%=Request.QueryString("itemid")%> 谢谢!
      • 再问一个问题, 我写查询语句:SELECT * FROM mytable1 WHERE Field1=Request.QueryString("itemid") 可以吗?应该怎样写?
        • 不行,你必须使用类似"...where field1 = '(单引号)" + Request.QueryString("itemid") + "'(单引号)"的语句,这样执行的SQL语句将是"... where field1 ='value1' "。
          • 谢谢!可查询结果是空,问题出在哪儿?
            我写:

            Select * From MyTable where Field1='abcd'

            结果是正确的,查到一些数据。

            显示 <%=Request.QueryString("itemid")%> 是 abcd

            可是写:

            Select * From Mytable where field=' "+Request.QueryString("itemid")+"'

            结果是空。为什么?
            • Try to "response.write" your sql query. Then run the query on query analyzer. If it doesn't work, there is something wrong with the sql statement. If it works, check the connection string.
              • 谢谢你的方法,果然灵!原来是空格的问题!bingle 的表达式是对的,一起谢谢了!
    • 这种情况一般是在你生成的ITEM的URL中包含一个行数的变量。 例http://localhost/list.asp&row=XXX
      • 能说具体一点吗?
      • 这么多大侠对付这样一个问题,呵呵
    • 用过Hidden和动态数组吗?用它传比什么都方便稳定。