Je dois transmettre la valeur sélectionnée de la liste déroulante à la requête SELECT et en fonction de la valeur passée la table / jeu d'enregistrements respectif affiché dans la page. J'ai du mal à trouver un moyen de transmettre la valeur.

 function getUnitCode() {    
    var x = document.getElementById("UnitCodeDDL");    
    var unical = x.options[x.selectedIndex].value;
    alert(unical);
}
<%   
   Dim strUnitCode
   strUnitCode=Request.Form("UnitCodeDDL") 
 %>
 <SELECT NAME=UnitCodeDDL id=UnitCodeDDL onchange="getUnitCode();javascript: document.forms['VehForm'].submit()">
    <OPTION VALUE=''>Please Select UnitCode</OPTION>
<%
 Dim objRS , strSQL
  Set objRS=Server.CreateObject ("ADODB.Recordset")
         
  strSQL = "SELECT v.unitcode, u.description "
  strSQL = strSQL & "FROM " & strBrand & "_vehicle AS v " 
  strSQL = strSQL & "LEFT JOIN unipos AS u "
  strSQL = strSQL & "ON v.unitcode = u.unitcode "
  strSQL = strSQL & "WHERE v_code='" & strVCode & "' "
  strSQL = strSQL & "GROUP BY v.unitcode;"
         
  objRS.Open strSQL,objConn
  Do While Not objRS.EOF
     Response.Write "<OPTION VALUE='" & objRS("unitcode") & "'"
     if  objRS("unitcode")=strUnitCode Then Response.Write " selected " 
     Response.Write ">"
     Response.Write objRS("unitcode") & "</OPTION>"
     objRS.MoveNext
  Loop
  objRS.Close
  Set objRS=Nothing
  Response.Write "</SELECT>"
%>
 <% 
  
  Dim strAutoSection 
  strAutoSection = strAutoSection & "<FORM name='VehForm' METHOD=POST ACTION='selectVeh.asp?brand=" & strBrand & "&VCode=" & strVCode & "&Veh=" & server.htmlencode(strVeh) & "&action=upload' enctype='multipart/form-data'>" & vbCrLf
  strAutoSection = strAutoSection & "Upload file:<INPUT TYPE='file' NAME='uploadFile'><input type='submit' value='upload'></FORM>"
  
  strAutoSection = strAutoSection & "<TABLE border=1 cellspacing=1 cellpadding=2>" & vbCrLf
  strAutoSection = strAutoSection & "<TR bgcolor='#CCFFCC'>" & vbCrLf
  strAutoSection = strAutoSection & "<TH>UNITCODE</TH>" & vbCrLf
  strAutoSection = strAutoSection & "<TH>DESCRIPTION</TH>" & vbCrLf  
  strAutoSection = strAutoSection & "</TR>" & vbCrLf

  Dim objRS_auto,strSQL
  Set objRS_auto=Server.CreateObject ("ADODB.Recordset")
  strSQL = "SELECT v.*, u.description "
  strSQL = strSQL & "FROM " & strBrand & "_vehicle AS v "
  strSQL = strSQL & "LEFT JOIN unitpos AS u "
  strSQL = strSQL & "ON v.unitcode = u.unitcode  "
  strSQL = strSQL & "WHERE v_code='" & strVCode & "' AND v.unitcode='" & strUnitCode & "' "
  objRS_auto.Open strSQL, objConn
%>

Tout ce que j'ai pour obtenir la valeur de UnitCodeDDL sur l'événement onchange et passer la même chose à la variable strUnitCode dans la requête. Quelqu'un peut-il me guider comment résoudre ce problème?

1
Dev 1 mars 2021 à 07:40

1 réponse

Meilleure réponse

Je soupçonne que vous recherchez l'objet in request.form mais que vous ne spécifiez pas method = post dans votre balise form (que vous n'avez pas montrée)

<form method=post>
    <select name=myselect>....
    </select>
<form>
    
<% val = request.form("myselect") %>

En passant, vous voudrez peut-être utiliser des continuations de ligne dans votre code et avoir les espaces au début de chaque ligne le rend plus lisible. Vous devrez peut-être également prendre en compte les dangers de l'injection SQL, sauf si vous souhaitez que toute votre base de données soit volée ou supprimée!

   strSQL = " SELECT v.unitcode, u.description" & _
            " FROM " & strBrand & "_vehicle AS v" & _
            " LEFT JOIN unipos AS u" & _
            " ON v.unitcode = u.unitcode" & _
            " WHERE v_code='" & strVCode & "'" & _
            " GROUP BY v.unitcode;"
0
pbannist 4 mars 2021 à 13:53