การใช้ดรอปดาวน์การเลือกหลายรายการกับ ASP

ฉันค่อนข้างใหม่และไม่ค่อยเก่งเรื่อง ASP ดังนั้นโปรดอดทนกับฉันด้วย

ในรูปแบบ HTML ของฉัน ฉันมีรายการแบบเลื่อนลงสำหรับตัวเลือกหลายรายการ ดังตัวอย่างด้านล่าง:

 <span><select id="movieMonster" name="movieMonster" multiple="multiple">
      <option value="">Please select all that apply</option>
      <option value="The Mummy">The Mummy</option>
      <option value="Dracula" selected>Dracula</option>
      <option value="The Wolfman">The Wolfman</option>
      <option value="The Gillman" selected>The Gillman</option>
      <option value="The Wasp Woman">The Wasp Woman</option>
 </select></span>

ฉันได้ตรวจสอบทุกที่และพยายามทำทุกอย่างเพื่อให้รายการที่เลือกถูกถ่ายโอนไปยังไฟล์ ASP ของฉันเมื่อกดปุ่มส่ง อย่างไรก็ตาม จะมีการถ่ายโอนค่าเพียงค่าเดียวเท่านั้น

ฉันใช้สิ่งต่อไปนี้ใน ASP ของฉัน:

 Mnstr = Trim(Upload.Form("movieMonster"))

สิ่งที่ใกล้เคียงที่สุดที่ฉันหาได้คือโค้ดที่จะแสดงรายการทั้งหมดที่เลือก แต่ต้องใช้โค้ดบนหน้า HTML เดียวกันกับแบบฟอร์ม มันใช้งานได้ดี ยกเว้นว่าฉันไม่สามารถรับข้อมูลเพื่อถ่ายโอนไปยัง ASP ของฉันได้

รหัสที่ฉันพบมีดังต่อไปนี้:

 <!DOCTYPE html>
 <html>
 <head>

 <style>
      div { color:red; }
 </style>

 <script src="http://code.jquery.com/jquery-latest.js"></script>

 </head>
 <body>

      <select name="garden" multiple="multiple">
           <option>Flowers</option>
           <option selected="selected">Shrubs</option>
           <option>Trees</option>
           <option selected="selected">Bushes</option>
           <option>Grass</option>
           <option>Dirt</option>
      </select>

      <div></div>

      <script>
           $("select").change(function () {
                var str = "";
                $("select option:selected").each(function () {
                     str += $(this).text() + " ";              
                });
           $("div").text(str);
           })        
           .trigger('change');
      </script>

 </body>
 </html>

<div></div> ด้านบนคือสิ่งที่พิมพ์รายการที่เลือก ฉันได้ปรับแต่งโค้ดให้ทำงานให้ฉันและเปลี่ยนการใช้ div เป็นตัวแปรอื่น เพราะฉันจำเป็น และนั่นก็ได้ผล มันจะพิมพ์ทุกรายการที่เลือกจากดรอปดาวน์การเลือกหลายรายการ แต่ฉันไม่สามารถรับข้อมูลนั้นไปยังไฟล์ ASP ได้

เนื่องจากฉันไม่สามารถรับข้อมูลไปยัง ASP ได้ ฉันจึงลองใช้อินพุตที่ซ่อนอยู่ แต่ก็ไม่ได้ผลเช่นกัน

หากใครรู้วิธีง่ายๆ ในการทำสิ่งที่ฉันต้องการ ฉันจะขอบคุณจริงๆ

ฉันแน่ใจว่าต้องมีวิธีง่ายๆ ในการทำเช่นนี้ แต่ฉันไม่สามารถหาได้จากที่ไหนเลย


person Anthony Mark    schedule 01.01.2013    source แหล่งที่มา


คำตอบ (1)


นี่เป็นปัญหากับองค์ประกอบการอัปโหลด ดู: Upload.Form ส่งคืนเฉพาะรายการแรกที่เลือกของตัวควบคุมแบบเลือกหลายรายการ .

ตามที่วิธีแก้ปัญหาแนะนำ คุณจะต้องวนซ้ำช่องแบบฟอร์มชื่อ movieMonster ในหน้า asp ของคุณ

รหัส asp ของคุณควรมีลักษณะดังนี้:

Mnstr = ""
For Each Item in Upload.Form
  If Item.Name = "movieMonster" Then 
    Mnstr = Mnstr & Item.Value &","
  End If
Next 

'remove the extra comma if there is one
if (trim(Mnstr)<>"") then
    Mnstr = Left(Mnstr,len(Mnstr)-1)
end if
person Flakes    schedule 02.01.2013
comment
@SearchAndResQ. ฉันลองใช้โค้ดจากลิงก์ด้านบนแล้ว แต่ยังได้รับเพียงรายการเดียวจากรายการ ก่อนใช้โค้ดนี้ได้มาอันแรกตอนนี้เหลืออันสุดท้ายแล้ว ฉันต้องปรับโค้ด เนื่องจากฉันไม่ต้องการเขียนรายการในรายการ ฉันต้องการให้รายการเหล่านั้นกลายเป็นค่าของตัวแปรใหม่ ฉันรู้สึกว่าฉันต้องเพิ่มโค้ดที่จะอนุญาตให้เชื่อมโยงรายการที่เลือกทั้งหมดในรายการแบบเลื่อนลงสำหรับการเลือกหลายรายการ ฉันต้องการโพสต์โค้ดที่แก้ไขแล้วที่นี่ แต่ดูเหมือนจะไม่สามารถแสดงโค้ดได้อย่างถูกต้อง - person Anthony Mark; 03.01.2013
comment
@SearchAndResQ. ขอบคุณที่ช่วยชีวิตฉัน! ไม่ต้องพูดถึงสติของฉัน สิ่งนี้ทำงานได้อย่างสวยงาม ขอบคุณมากครับ. - person Anthony Mark; 03.01.2013