2010-11-23 9 views
2

Wie Abrufen des Statusfelds aus der JSON-Datei mithilfe des Textfelds als Quelle für den Identifikatorcode?Abrufen des Werts mithilfe von jquery (getJSON) und json

Meine data.json Datei:

[{ 
     "code":"001", 
     "status":"ready" 
    }, 
    { 
     "code":"002", 
     "status":"not ready" 
    } 
] 

Meine Jquery-Datei:

$(document).ready(function() { 
$('#ticketsearch').click(function() { 
    var ticketcode = $('[name=ticketcode]').val(); 
    $('.ticket').text(ticketcode); 
    $.getJSON('data.json', function(data) { 
    $('.status').text(data.status); 
    }); 
    }); 
}); 

Antwort

2

In diesem Fall müssen Sie auch noch brauchen, um durch, bis Sie die code finden, die passt, wie folgt aus:

$(document).ready(function() { 
    $('#ticketsearch').click(function() { 
    var ticketcode = $('[name=ticketcode]').val(); 
    $('.ticket').text(ticketcode); 
    $.getJSON('data.json', function(data) { 
     $.each(data, function(i, obj) { 
     if(obj.code == ticketcode) 
      $('.status').text(obj.status); 
     }); 
    }); 
    }); 
}); 

Wenn es eine Option ist, vereinfachen gerade Ihre JSON, wo code ist der Schlüssel, wie folgt aus:

{ 
    "001":"ready", 
    "002":"not ready" 
} 

Dann können Sie darauf zugreifen über diesen Schlüssel, wie folgt aus:

$(document).ready(function() { 
    $('#ticketsearch').click(function() { 
    var ticketcode = $('[name=ticketcode]').val(); 
    $('.ticket').text(ticketcode); 
    $.getJSON('data.json', function(data) { 
     $('.status').text(data[ticketcode]); 
    }); 
    }); 
}); 
+0

Ich mag Ihre zweite Version, aber $ ('. Status'). Text (Daten [Ticketcode]); gibt keinen Wert zurück. PS. Ich aktualisierte meine JSON-Datei – adpo

+0

@adpo - wenn Sie 'ticketcode' warnen, was bekommen Sie? Wenn es nicht "001" 'oder' "002" 'usw. ist, wenn es den Schlüssel gerade nicht findet. –

+0

Warnung (Ticketcode); Ticketcode zurückgeben zB 001 oder 002 – adpo

0

Welches möchten Sie tun? Du bekommst ein Array zurück. Wenn Sie den ersten Status wünschen: data[0].status. Wenn das zweite Element: data[1].status

+0

Ich werde die ID aus dem Textfeld auswählen und dann senden. Kann ich zum Beispiel Daten [Ticketcode] .status – adpo

0

Sie haben eine Reihe von Dictionary-Objekten, so dass Sie data[0].status bis zu data[n].status verwenden müssen.

+0

Ich werde die ID aus dem Textfeld auswählen und dann senden. Kann ich zum Beispiel Daten [ticketcode] verwenden .status – adpo

+0

yup, wenn ticketCode die ID ist, die du haben willst, dann tust du das. – shoebox639

+0

Werfen Sie einen Blick auf @ Nick Cravers Antwort. Er hat ein Beispiel für dich. – climbage

Verwandte Themen