i'm having problem processing json object. page has form has dropdown when select truck number rest of form suppose filled data coming json file.
here sample of data
[ { "trucknum":"62-559", "description":"moffet truck", "driver":"kevin conroy", "status":"ok", "dateout":"", "repairs":"", "dateback":"", "location":"berlin" }, { "trucknum":"m-28", "description":"moffet", "driver":"moffet", "status":"ok", "dateout":"", "repairs":"", "dateback":"", "location":"berlin" }, { "trucknum":"62-443", "description":"20' dump", "driver":"", "status":"ok", "dateout":"", "repairs":"", "dateback":"", "location":"berlin" }, { "trucknum":"sub", "description":"", "driver":"mark trainer", "status":"ok", "dateout":"", "repairs":"", "dateback":"", "location":"berlin" } ]
here page code. using jade expressjs backend.
extends layout block content div(class='container') header h1 national lumber co. / reliable truss & component h2 fleet maintenance administration div(class='section') h3 edit truck form(role='form' id='formfield' method='post') div(class='form-group') div(class='well well-lg') label(for='vehicleno') vehicle number edited select(class='form-control' id='vehicleno' name='vehicleno') option(value='default') -- select 1 -- label(for='edityard') yard select(class='form-control' id='edityard' name='location') option(value='default') -- select 1 -- label(for='editvehicleno') vehicle number input(type='text' id='editvehicleno' class='form-control' name='trucknum') label(for='editvehicledesc') vehicle description input(type='text' id='editvehicledesc' class='form-control' name='description') label(for='editdrivername') driver name input(type='text' id='editdrivername' class='form-control' name='driver') label(for='editstatus') status select(id='editstatus' class='form-control' name='status') option(value='default') -- select 1 -- label(for='editdateout') date out of service input(type='text' id='editdateout' class='form-control' name='dateout') label(for='editdateback') est. date in service input(type='text' id='editdateback' class='form-control' name='dateback') label(for='editrepairs') repairs being done input(type='text' id='editrepairs' class='form-control' name='repairs') button(type='submit' name='edit' id='edit' class='btn btn-primary') edit script |var v; |var t; |var trucks; |var stat; |var uniquelocations = []; |var uniquestatus = []; |var y; |$(document).ready(function(){ | $.getjson('/components/trucks.json', function(data){ | trucks = data; | data = sortbylocation(data, 'trucknum'); | var htmltrucknum = ''; | var htmlyard = ''; | var htmlstatus = ''; | var len = data.length; | (var = 0; i< len; i++) { | htmltrucknum += '<option value="' + data[i].trucknum + '">' + data[i].trucknum + '</option>'; | } | $('select#vehicleno').append(htmltrucknum); | trucks = sortbylocation(trucks, 'location'); | for(var = 0; < trucks.length; i++){ | if(uniquelocations.indexof(trucks[i].location) === -1){ | uniquelocations.push(trucks[i].location); | } | } | for(var j = 0; j < uniquelocations.length; j++){ | htmlyard += '<option value="' + uniquelocations[j] + '">' + uniquelocations[j] + '</option>'; | } | $('select#edityard').append(htmlyard); | stat = sortbylocation(trucks, 'status'); | for(var = 0; < trucks.length; i++){ | if(uniquestatus.indexof(trucks[i].status) === -1){ | uniquestatus.push(trucks[i].status); | } | } | for(var x = 0; x < uniquestatus.length; x++){ | htmlstatus += '<option value="' + uniquestatus[x] + '">' + uniquestatus[x] + '</option>'; | } | $('select#editstatus').append(htmlstatus); | }); |});
the on change section isn't working right. uncaught syntaxerror: unexpected token o @ | var obj = jquery.parsejson(trucktoedit);
if take out , y = trucktoedit.location
undefined
at console.log(trucktoedit) devtools console
[object]0: objectdateback: ""dateout: ""description: "20' dump"driver: ""location: "oxford"repairs: ""status: "ok"trucknum: "99-999"__proto__: objectlength: 1__proto__: array[0]
not sure doing wrong.
|$("select#vehicleno").on('change', function () { | v = document.getelementbyid("vehicleno"); | t = v.options[v.selectedindex].text; | var trucktoedit = trucks.filter(function(item) { | return item.trucknum == t; | }); | console.log(trucktoedit); | var obj = jquery.parsejson(trucktoedit); | console.log(obj.location); | document.getelementbyid('editvehicledesc').value = y; |}); |function sortbylocation(array, key){ | return array.sort(function(a, b){ | var x = a[key]; | var y = b[key]; | return ((x < y) ? -1 : ((x > y) ? 1 : 0)); | }); |}
thanks kevin, comment lead me @ devtools showing me. though showed [object]0: objectdateback: ""dateout: ""description: "20' dump"driver: ""location: "oxford"repairs: ""status: "ok"trucknum: "99-999"proto: objectlength: 1__proto__: array[0] seeing array 1 index. told treat array each property out of it. example var obj0 = trucktoedit[0].location , put in document.getelementbyid('edityard').value = obj0
Comments
Post a Comment