Search City by State with Ajax and Laravel

0

I am making an AJAX request, however it is giving an error: undefined

Controller

<?php

namespace App\Http\Controllers;

use App\Estado;
use App\Http\Requests;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Response;
class CidadeController extends Controller
{
    private $estadoModel;
    public function __construct(Estado $estado)
    {
        $this->estadoModel = $estado;
    }
    public function index()
    {
        $estados = $this->estadoModel->pluck('nome', 'id');
        return view('cidade', compact('estados'));
    }
    public function getCidades($idEstado)
    {
        $estado = $this->estadoModel->find($idEstado);
        $cidades = $estado->cidades()->getQuery()->get(['id', 'nome']);
        return Response::json($cidades);
    }
}

$(function(){
    $('#estado').change(function () {

        // alert('ok')
        var idEstado = $(this).val();
        $.get('/get-cidades/' + idEstado, function (cidades) {
            $('select[name=cidade]').empty();
            $.each(cidades, function (key, value) {
                $('select[name=cidade]').append('<option value=' + value.id + '>' + value.cidade + '</option>');
            });
        });
    });
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

<script
  src="https://code.jquery.com/jquery-3.3.1.js"integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
  crossorigin="anonymous"></script>

<div class="container">
    <h1>Cidades e Estados</h1>

   {!! Form::label('estado', 'Estados:') !!}
    {!! Form::select('estado', $estados) !!}

    {!! Form::label('cidade', 'Cidades:') !!}
    {!! Form::select('cidade', []) !!}
   

</div>
    
asked by anonymous 04.01.2019 / 12:24

1 answer

0

I was able to solve

instead of value.city is value.name.

    
04.01.2019 / 12:57