JSON Data - Listing Values and Using Objects
I have a set of JSON data that I need to search for a set of specific values based on one key that is specified by select menu. Everything is working well if I just needed to find one hospital, but I need to list all hospitals in a selected state.
**Here is the working example: http://jsfiddle.net/rfKcM/ **
As you can see I have a set of JSON data that simply lists multiple hospitals in three different states. In addition, each hospital also has a related set of data values in the JSON file. Currently a user selects a state from the select menu and a corresponding hospital in the same state is listed, but I need to list ALL hospitals in the selected state, not just one.
In addition, the hospitals that are listed need to be listed as links so a user can choose a hospital to use in the application and all of its related values also be available for use as objects later.
**Here is a summary of the workflow:**
1. User selects a state in the dropdown and presses the submit button
2. Pressing the submit button runs the function that searches the JSON data and finds all of the entries that match the state value that was entered in the previous step
3. ALL HosName values that have a matching state are listed as links
4. User chooses a HosName from the list and all JSON values related to the chosen HosName are brought into the application for later use. For example: If a user chooses "YORK HOSPITAL" from the list of hospital names the related strings (SPval,Hospitalval,ICUval,SMval,OPval,AVLOSval) will also be retrieved from the JSON data and be available as objects with the application for later calculations.
**Here is the actual code:**
<html>
<head>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
$(function() {
var city;
var json = {
"hospitals": {
"facility": [
{"HosName":"UNIVERSITY OF WISCONSIN HOSPITALS A","City":"MADISON","State":"WI","SPval":104938,"Hospitalval":501,"ICUval":55,"SMval":6132,"OPval":0,"AVLOSval":0},
{"HosName":"UNIVERSITY OF IOWA HOSPITALS & CLIN","City":"IOWA CITY","State":"WI","SPval":101188,"Hospitalval":744,"ICUval":20,"SMval":8307,"OPval":0,"AVLOSval":0},
{"HosName":"CLEVELAND CLINIC FOUNDATION","City":"CLEVELAND","State":"WI","SPval":81954,"Hospitalval":1257,"ICUval":205,"SMval":19758,"OPval":0,"AVLOSval":0},
{"HosName":"METHODIST HOSPITAL","City":"SAN ANTONIO","State":"WI","SPval":71477,"Hospitalval":1419,"ICUval":104,"SMval":5607,"OPval":0,"AVLOSval":0},
{"HosName":"AURORA ST LUKES MEDICAL CENTER","City":"MILWAUKEE","State":"WI","SPval":68638,"Hospitalval":710,"ICUval":68,"SMval":3653,"OPval":0,"AVLOSval":0},
{"HosName":"NEW YORK PRESBYTERIAN HOSPITAL 0 CO","City":"NEW YORK","State":"WI","SPval":66846,"Hospitalval":959,"ICUval":99,"SMval":15472,"OPval":0,"AVLOSval":0},
{"HosName":"DOCTORS HOSPITAL AT RENAISSANCE","City":"EDINBURG","State":"TX","SPval":60026,"Hospitalval":521,"ICUval":35,"SMval":2845,"OPval":0,"AVLOSval":0},
{"HosName":"VA MEDICAL CENTER ATLANTA","City":"DECATUR","State":"TX","SPval":59781,"Hospitalval":191,"ICUval":45,"SMval":1864,"OPval":0,"AVLOSval":0},
{"HosName":"THE JOHNS HOPKINS HOSPITAL","City":"BALTIMORE","State":"TX","SPval":58423,"Hospitalval":981,"ICUval":104,"SMval":9036,"OPval":0,"AVLOSval":0},
{"HosName":"VIRTUA WEST JERSEY HOSPITAL 0 VOORH","City":"VOORHEES","State":"TX","SPval":57953,"Hospitalval":352,"ICUval":20,"SMval":3073,"OPval":0,"AVLOSval":0},
{"HosName":"PINNACLEHEALTH AT HARRISBURG HOSPIT","City":"HARRISBURG","State":"LA","SPval":55529,"Hospitalval":643,"ICUval":28,"SMval":3887,"OPval":0,"AVLOSval":0},
{"HosName":"FLORIDA HOSPITAL 0 ORLANDO","City":"ORLANDO","State":"LA","SPval":53620,"Hospitalval":1538,"ICUval":272,"SMval":13716,"OPval":0,"AVLOSval":0},
{"HosName":"ORLANDO REGIONAL MEDICAL CENTER","City":"ORLANDO","State":"LA","SPval":53490,"Hospitalval":1305,"ICUval":64,"SMval":10422,"OPval":0,"AVLOSval":0},
{"HosName":"YORK HOSPITAL","City":"SOUTH BERWICK","State":"LA","SPval":0,"Hospitalval":0,"ICUval":0,"SMval":0,"OPval":0,"AVLOSval":0}
]
}
};
$("input[type='submit']").click(function() {
var searchName = $("select[name='state']").val();
$.each(json.hospitals.facility, function(i, v) {
if (v.State == searchName) {
name = v.HosName;
return;
}
});
return;
});
$("#submit").click(function(){
$('.hospital').html(name);
});
});
</script>
</head>
<body>
<div>
<select name="state">
<option value="" selected="selected">Select a State</option>
<option value="LA">Louisiana</option>
<option value="TX">Texas</option>
<option value="WI">Wisconsin</option>
</select>
<input value="submit" id="submit" type="submit" />
</div>
<p class="hospital"></p>
</body>
</html>