Como pre-selecionar e listar registos para edição de um registo com mysql+php+jquery+Ajax para <option> do <select>

Boas, pessoal! Como estão? Estou com um problema já faz um dia e não vejo luz no fim do túnel. Estou usando neste projecto php 7, mysql, jquery com ajax. A situação é a seguinte:

Estou a desenvolver a funcionalidade de edição de registos, ao escolher o registo a editar abre um modal e os campos do formulário devem ser preenchido. Consegui sem problema com inputs:text e também nos campos de input:date. Mas estou com dificuldade em pegar os dados que vêm do back e preencher no <option> do <select>.

Abaixo deixo o código para me poderem ajudar…

formulario de edição

<div class="modal fade" id="modalEdicaoFuncionario" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="modalEdicaoFuncionario" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h2 class="modal-title">Edição de funcionário</h2>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fechar"> </button>
            </div>

            <div class="modal-body">
                <form id="frmRegistoFuncionario" class="row" method="POST">
                    <div class="alert alert-danger alert-dismissible fade show error-fields-registo-funcionario" role="alert"><i class="fas fa-exclamation-triangle"></i> Preencha os campos que são obrigatórios
                        <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                    </div>

                    <div class="col-12">
                        <label for="txtIdFuncionarioEdicao" class="form-label">Código</label>
                        <input type="text" name="txtIdFuncionarioEdicao" id="txtIdFuncionarioEdicao" class="form-control" disabled>

                        <div class="campo-invalido-vazio">
                            <i class="fas fa-times"></i>Campo obrigatório!
                        </div>
                    </div>

                    <div class="col-12">
                        <label for="txtNomeFuncionarioEdicao" class="form-label">Nome completo</label>
                        <input type="text" name="txtNomeFuncionarioEdicao" id="txtNomeFuncionarioEdicao" class="form-control" placeholder="Nome completo do funcionário">

                        <div class="campo-invalido-vazio">
                            <i class="fas fa-times"></i>Campo obrigatório!
                        </div>
                    </div>

                    <div class="col-4">
                        <label for="txtDataNascimentoEdicao" class="form-label">D. Nascimento</label>
                        <input type="date" id="txtDateEdicao" name="txtDateEdicao" class="form-control">


                        <div class="campo-invalido-vazio">
                            <i class="fas fa-times"></i>Campo obrigatório!
                        </div>

                    </div>

                    <div class="col-4">
                        <label for="txtBI" class="form-label">Nº BI</label>
                        <input type="text" name="txtBIEdicao" id="txtBIEdicao" placeholder="Nº de BI" class="form-control" maxlength="13" minlength="13">

                        <div class="campo-invalido-vazio">
                            <i class="fas fa-times"></i>Campo obrigatório!
                        </div>

                    </div>

                    <div class="col-4">
                        <label for="txtNUIT" class="form-label">Nº NUIT</label>
                        <input type="text" name="txtNUITEdicao" id="txtNUITEdicao" placeholder="NUIT" class="form-control" maxlength="9" minlength="9">


                        <div class="campo-invalido-vazio">
                            <i class="fas fa-times"></i>Campo obrigatório!
                        </div>
                    </div>




                    <div class="col-4">
                        <label for="txtDepartamento" class="form-label">Departamento</label>
                        <select class="form-control" name="txtDepartamentoEdicao" id="txtDepartamentoEdicao">
                            <option selected>Escolha o departamento</option>
                            <?php
                            $sqlPesquisaDepartamentosEdicao = "SELECT idDepartamento, nomeDepartamento from departamentos";
                            $resultPesquisaDepartamentosEdicao = mysqli_query($conexao, $sqlPesquisaDepartamentosEdicao);
                            while ($dadosEdicao = mysqli_fetch_row($resultPesquisaDepartamentosEdicao)) : ?>

                                <option value="<?php echo $dadosEdicao[0]; ?>"> <?php echo $dadosEdicao[1]; ?> </option>

                            <?php endwhile; ?>

                        </select>


                        <div class="campo-invalido-vazio">
                            <i class="fas fa-times"></i>Campo obrigatório!
                        </div>
                    </div>


                    <div class="col-4">
                        <label for="txtEscalao" class="form-label">Escalão</label>
                        <select class="form-control" name="txtEscalaoEdicao" id="txtEscalaoEdicao">
                            <option selected>Escolha o escalão</option>
                            <option value="1">1</option>
                            <option value="2">2</option>
                            <option value="3">3</option>
                            <option value="4">4</option>
                        </select>


                        <div class="campo-invalido-vazio">
                            <i class="fas fa-times"></i>Campo obrigatório!
                        </div>
                    </div>

                    <div class="col-4">
                        <label for="txtClasse" class="form-label">Classe</label>
                        <select id="txtClasseEdicao" name="txtClasseEdicao" class="form-control">
                            <option selected>Escolha a classe</option>
                            <option value="A">A</option>
                            <option value="B">B</option>
                            <option value="C">C</option>
                        </select>


                        <div class="campo-invalido-vazio">
                            <i class="fas fa-times"></i>Campo obrigatório!
                        </div>
                    </div>

                    <div class="col-4">
                        <label for="txtCargo" class="form-label">Cargo</label>
                        <input type="text" name="txtCargoEdicao" id="txtCargoEdicao" class="form-control" placeholder="Cargo do funcionário">


                        <div class="campo-invalido-vazio">
                            <i class="fas fa-times"></i>Campo obrigatório!
                        </div>
                    </div>

                    <div class="col-4">
                        <label for="txtDataInicioCarreira" class="form-label">Inicio carreira</label>
                        <input type="date" name="txtDataInicioCarreiraEdicao" id="txtDataInicioCarreiraEdicao" class="form-control">


                        <div class="campo-invalido-vazio">
                            <i class="fas fa-times"></i>Campo obrigatório!
                        </div>
                    </div>

                    <div class="col-4">
                        <button type="submit" class="btn btn-success btn-form" id="btnRegistarFuncionario">Salvar funcionário</button>
                    </div>

                </form>
            </div>

        </div>
    </div>

</div>

Função JS para pegar os dados da base de dados do registo e preencher os campos de edição

function recuperarDadosFuncionario(idFuncionario) {
            $.ajax({
                type: "POST",
                data: "idFuncionario=" + idFuncionario,
                url: "../procedimentos/funcionarios/recuperarDadosFuncionario.php",
                success: function(r) {

                    dados = jQuery.parseJSON(r);
                    console.log(dados);
                    $('#txtIdFuncionarioEdicao').val(dados['idFuncionario']);
                    $('#txtNomeFuncionarioEdicao').val(dados['nomeFuncionario']);
                    $('#txtDateEdicao').val(dados['dataNascimento']);
                    $('#txtBIEdicao').val(dados['numeroBI']);
                    $('#txtNUITEdicao').val(dados['numeroNUIT']);
                    $('#txtDepartamentoEdicao').val(['idDepartamento']);
                    $('#txtEscalaoEdicao option').val(dados['escalao']).prop('selected', true);
                    $('#txtClasseEdicao option').val(dados['classe']).prop('selected', true);
                    $('#txtCargoEdicao').val(dados['cargo']);
                    $('#txtDataInicioCarreiraEdicao').val(dados['dataInicioCarreira']);

                },
            })
        }

Ficheiro que irá se comunicar com classe Funcionarios

<?php

require_once "../../classes/conexao.php";

require_once "../../classes/funcionarios.php";

$con = new Conexao();

$conexao = $con->conectar();

$obj = new Funcionarios();

$idFuncionario = $_POST['idFuncionario'];

echo json_encode($obj->recuperarDadosFuncionario($idFuncionario));

Metodo da classe Funcionarios

public function recuperarDadosFuncionario($idFuncionario){
        $con = new Conexao();
        $conexao = $con->conectar();
      
        
        $sql = "SELECT f.idFuncionario, f.idDepartamento, f.nomeFuncionario, f.dataNascimento, f.numeroNUIT, f.numeroBI, f.escalaoFuncionario, f.classeFuncionario, f.cargo, f.dataInicioCarreira, f.dataRegisto, d.nomeDepartamento from funcionarios as f join departamentos as d on f.idDepartamento = d.idDepartamento";
        $resultado =  mysqli_query($conexao, $sql);
        $resultadoItem = mysqli_fetch_row($resultado);

        $dados = array(
            "idFuncionario" => $resultadoItem[0],
            "idDepartamento" => $resultadoItem[1],
            "nomeFuncionario" =>  $resultadoItem[2],
            "dataNascimento" => $resultadoItem[3],
            "numeroNUIT" => $resultadoItem[4],
            "numeroBI" => $resultadoItem[5],
            "escalao" => $resultadoItem[6],
            "classe" => $resultadoItem[7],
            "cargo" => $resultadoItem[8],
            "dataInicioCarreira" => $resultadoItem[9],
            "dataRegisto" => $resultadoItem[10],
            "nomeDepartamento" => $resultadoItem[11]
        );

        return $dados;
    }

Como podere ultrapassar este problema? ja vi em muitos topicos mas para ser sincero nenhum me ajudou. Obrigado