เติมข้อมูลที่เลือกด้วยคีย์จาก json

ฉันมีอาร์เรย์ที่มีวัตถุอยู่ ซึ่งจะถูกส่งกลับไปยังไคลเอ็นต์ผ่านเซิร์ฟเวอร์ node.js ที่ทำงานด้วย mongodb ฉันต้องการเลือกคีย์/ฟิลด์ทั้งหมดในวัตถุ (เช่น ชื่อ นามสกุล โทรศัพท์) แต่ไม่ใช่ค่า (เช่น ฉันแค่ต้องการสตริง "ชื่อ" และไม่ใช่ค่า "บางชื่อ") จากนั้นจึงเติมคีย์เหล่านั้นในเมนูที่เลือก ใช้ jquery

[
  {
    "name": "some name",
    "surname": "some surname",
    "telephone": "123456",
    "address": "street123",
    "_id": "52751d39b188f14026002711"
  }
]

ด้านล่างนี้คือวิธีที่ฉันรับเอกสารในรูปแบบ json ไปยังไคลเอนต์ และวิธีเติมเมนูเลือก (#parameter) ขณะนี้กำลังเติมข้อมูลการเลือกด้วยเอกสาร json ทั้งหมด ซึ่งหมายถึงคู่คีย์/ค่าทุกคู่

$.getJSON("http://localhost:3000/findAll/"+ coll, function (result) {
     $.each(result, function(i){
        $('#parameter').append('<option>'+JSON.stringify(result[i])+'</option>')
     })                        
});

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


person Case09    schedule 02.11.2013    source แหล่งที่มา


คำตอบ (1)


ลองสิ่งนี้ (ซอ: http://jsfiddle.net/jzmtL/1/):

$.getJSON("http://localhost:3000/findAll/"+ coll, function (result) {
  $.each(result, function(i, element){
    for (var prop in element){
        if (element.hasOwnProperty(prop)){
          $('#parameter').append('<option>'+ prop +'</option>')
        }
    }                     
});

คำถามส่วนที่สองไม่ชัดเจนเกินไป คุณช่วยอธิบายเพิ่มเติมอีกหน่อยได้ไหม?

person pax162    schedule 02.11.2013
comment
ว้าว ขอบคุณสำหรับการตอบกลับที่รวดเร็ว มันได้ผลเหมือนมีเสน่ห์ น่าชื่นชมมาก เกี่ยวกับส่วนที่สองของคำถาม สมมติว่าฉันได้รับ json ข้างต้นไปยังไคลเอนต์ พร้อมกับวัตถุอื่นที่มีคีย์ทั้งหมดเหมือนกับอันแรก ฉันจะเติมเมนูที่เลือกด้วยคีย์เฉพาะเท่านั้นได้อย่างไร และไม่ใช้คีย์เดียวกันสองครั้งขึ้นไป เพราะตอนนี้ถ้าฉันมี 2 วัตถุที่มีปุ่มเดียวกัน มันจะแทรกและปุ่มจะทำซ้ำภายในเมนูเลือก ขออภัยหากนี่เป็นปัญหาง่อย ฉันเป็นมือใหม่ - person Case09; 03.11.2013
comment
นั่นขึ้นอยู่กับ UI ของคุณ ผู้ใช้จะเข้าถึงแต่ละวัตถุในสองวัตถุที่แยกจากกันได้อย่างไร คุณจะมีเมนูแบบเลื่อนลงอื่นซึ่งแสดงรายการวัตถุหรือไม่ เมนูแบบเลื่อนลง #parameter นี้ควรใช้กับออบเจ็กต์ครั้งละหนึ่งรายการเท่านั้น - person pax162; 03.11.2013