Asp classic 经典ASP下拉菜单,保留值

Asp classic 经典ASP下拉菜单,保留值,asp-classic,Asp Classic,我在做点什么。所以,我去我的数据库,我想问他们想要什么类型的机器,基于现有的数据库 然后,我将根据类型检查模型。 最后是调色板的数量 例如: 机器1有型号2、3和4 机器2有型号1、2和3 机器1,型号2有13个调色板,机器2,型号2有15个调色板 我的代码: main.asp 所以,当我选择类型时。。。没关系,页面显示正确的型号。。。当我选择模型时,页面会重新加载,我会丢失所有内容 您能帮我吗?提交表单只提交该表单上的字段,而不提交其他表单上的任何其他字段。这就是为什么提交一个您的子表单会丢失

我在做点什么。所以,我去我的数据库,我想问他们想要什么类型的机器,基于现有的数据库 然后,我将根据类型检查模型。 最后是调色板的数量

例如: 机器1有型号2、3和4 机器2有型号1、2和3 机器1,型号2有13个调色板,机器2,型号2有15个调色板

我的代码: main.asp

所以,当我选择类型时。。。没关系,页面显示正确的型号。。。当我选择模型时,页面会重新加载,我会丢失所有内容


您能帮我吗?

提交表单只提交该表单上的字段,而不提交其他表单上的任何其他字段。这就是为什么提交一个您的子表单会丢失一切。若要修复此问题,请添加包含必要父数据的隐藏字段

<!--Choose model-->             
   <form method="post">
       <input type="hidden" name="maq" value="<%=Request.Form("maq")%>">
       <select name="model" id="model" onchange="this.form.submit()">
       [...]
       </select>
   </form>

对于palets表单,将machine和model都添加为隐藏字段。

您的代码容易受到SQL注入的影响,原因之一是,我建议您将业务逻辑数据库代码等从HTML中移出,并在将任何内容发送到客户端之前,在文件的最顶端进行尽可能多的处理,因为这会让一切更容易理解。我不明白,更容易理解?还有,我怎样才能在html中输入更少的内容呢?除了Martha的答案之外,还有一些观察结果。。。1每次使用记录集后不要关闭连接,2删除对conn2的引用。。。您可以随意多次使用打开的连接,并在使用后关闭记录集。希望这能有所帮助。我怎样才能把它应用到第三个下拉列表中呢?@LuísMelo:就像我说的,对于第三个表单,你需要为机器和模型都隐藏字段。
<!--Choose model-->             
   <form method="post">
       <input type="hidden" name="maq" value="<%=Request.Form("maq")%>">
       <select name="model" id="model" onchange="this.form.submit()">
       [...]
       </select>
   </form>