2016-04-19 4 views
0

Ich arbeite an Classic ASP und JavaScript.Löschen oder verstecken Sie einige Werte in der Dropdown-Liste, die durch gespeicherte Prozedur mit JavaScript gefüllt wird?

Ich habe zwei Dropdown-Listen: Dropdownlist1 und Dropdownlist2. In der ersten Dropdown-Liste wird die Liste der Unternehmen angezeigt, in der zweiten Dropdown-Liste werden die Abteilungen angezeigt.

Wenn der Benutzer die Firma A aus der ersten Dropdown-Liste so auswählen, sollte es alle Abteilungen anzeigen.

Wenn der Benutzer die Firma B aus der ersten Dropdown-Liste auswählt, sollten einige der Abteilungen in der zweiten Dropdown-Liste ausgeblendet werden.

Die Dropdownlisten werden aus gespeicherten Prozeduren gefüllt.

Wie kann ich das tun?

+0

Verwenden Sie AJAX-Aufrufe, um diese Felder zu füllen? – rcdmk

+0

Bitte geben Sie den Code an, den Sie verwenden, um anzuzeigen, was Sie bisher versucht haben. –

Antwort

1

Es gibt zwei Möglichkeiten, um mit zu gehen:

Sie können entweder AJAX verwenden, um eine Anfrage zu machen, um die Optionen für die zweite Dropdown-Liste zu erhalten, indem die Auswahl des ersten vorbei (das ist, was die meisten Menschen tun würden). Das wäre in Ihrem JS wie folgt aussehen

(Edit: vergaß zu erwähnen, dass das folgende Beispiel verwendet jQuery) (nicht getestet!) (! Auch nicht getestet)

$('select#company').on('change', function() { 
    $.ajax('/some-asp-file.asp', { 
     type: 'POST', 
     data: { 
      'Company': $('select#company').val() 
     }, 
     success: $.proxy(function(data){ 
      $('select#department').html(data); 
     }, this) 
    }); 
}); 

und so etwas wie dies in /some-asp-file.asp

<% 
dim Company 
dim Department, Departments 

Company = trim(request.form("Company")) 

if Company <> "" then 

    Departments = ' // -> Result Array from your SP here where you pass in "Company" 

    for each Department in Departments 
%> 
<option value="<%=Department%>"><%=Department%></option> 
<% 
    next 

else 
%> 
<option value="-1">-</option> 
<% 
end if 
%> 

OR (die Entscheidung hängt auch von der Menge der Daten, die Sie haben) Sie zunächst alle Daten bekommen könnten und speichern sie in einem Objekt JS und ersetzen Sie es clientseitig. Das ist wahrscheinlich frustrierender, wenn Sie mit dem doppelten Zitat in ASP usw. arbeiten, aber ich könnte Ihnen ein schnelles Beispiel schreiben, wenn Sie darauf bestehen.