Reputation: 9
I have tried to get values of an object using ajax. I stored all properties of that object on array. Now I need to access that array on ajax success function. Here is my controller.
public function sub(Request $request)
{
if($request->ajax())
{
$id = $request->get('selected');
if($id != null) {
$sub = DB::table('companies')->where('id', $id)->first();
if ($sub)
{
$subComp = [
'name' => $sub->name,
'address' => $sub->address,
'contact' => $sub->contact_num
];
}
}
}
echo json_encode($subComp);
}
And this is my html.
<div id="subCompany">
<input type="text" name="subname">
<input type="text" name="subaddress">
<input type="text" name="subcontact">
</div>
And my script:
$.ajax({
type: 'GET',
url: "{{ route('leader') }}",
dataType:'json',
data: {'selected': selected},
success: function (subComp) {
alert('success');
$('#subCompany[name="subname"]').val(subComp.name);
$('#subCompany[name="subaddress"]').val(subComp.address);
$('#subCompany[name="subcontact"]').val(subComp.contact);
}
});
Upvotes: 0
Views: 919
Reputation: 5262
I think the problem is your selector
Change this:
$('#subCompany[name="subname"]').val(subComp.name);
$('#subCompany[name="subaddress"]').val(subComp.address);
$('#subCompany[name="subcontact"]').val(subComp.contact);
to this:
var subCompanyEl = $('#subCompany'); // its just for caching
subCompanyEl.find('input[name=subname]').val(subComp.name);
subCompanyEl.find('input[name=subaddress]').val(subComp.address);
subCompanyEl.find('input[name=subcontact]').val(subComp.contact);
Upvotes: 1