Olá pessoal, preciso de ajuda, pois não sou muito experiente no php. Não sei como popular o elemento <select>
com dados provindos do banco de dados quando desejo atualizar quaisquer dados de qualquer registro numa tabela. Explicando com detalhes quando quero atualizar / editar algum registo de qualquer tabela (tabela do banco de dados) se no formulário tiver campo de select não sei como definir lá um dado que pertence a um registo existente na tabela do banco de dados para alterar com outras opções disponíveis. Eu tentei de maneiras diferentes, mas não funcionou perfeitamente.
Vou colocar aqui o código do projeto de exercício.
Formulário HTML responsável pelo update:
<select class="form-control" id="txtUserRoleEdicao" name="txtUserRoleEdicao">
<option value="" selected id="fakeOption">Escolha o tipo de usuário em relação ao previlégios</option>
<?php
$sqlPesquisarEdicaoROLE_USERS = "SELECT idROLE_USER, tipoROLE_USER from ROLE_USERS";
$resultPesquisarEdicaoROLE_USERS = mysqli_query($conexao, $sqlPesquisarEdicaoROLE_USERS);
while ($dados = mysqli_fetch_row($resultPesquisarEdicaoROLE_USERS)) : ?>
<option id="optionROLE_USER" value="<?php echo $dados[0]; ?>"> <?php echo $dados[1]; ?> </option>
<?php endwhile; ?>
</select>
Código js que recupera dados de php para definir dados no formulário de edição:
function recuperarDadosUsuario(idUsuario) {
$.ajax({
type: "POST",
data: "idUsuario=" + idUsuario,
url: "../procedimentos/usuarios/recuperarDadosEdicaoUsuario.php",
success: function(r) {
dados = jQuery.parseJSON(r);
$('#txtIdUsuario').val(dados['idUsuario']);
$('#txtNomeFuncionarioUsuarioEdicao').val(dados['nomeFuncionario']);
$('#optionROLE_USER').val(dados['idRoleUsers']);
$('#optionROLE_USER').text(dados['tipoRole']);
$('#fakeOption').prop('selected', false);
$('#optionROLE_USER').prop('selected', true);
$('#txtEmailEdicao').val(dados['emailUsuario']);
$('#txtSenhaEdicao').val(dados['senhaUsuario']);
}
});
$('#optionROLE_USER').prop('selected', false);
$('#fakeOption').prop('selected', true);
}
código do arquivo php recuperarDadosEdicaoUsuario.php:
<?php
require_once "../../classes/conexao.php";
require_once "../../classes/usuarios.php";
$idUsuario = $_POST['idUsuario'];
$con = new Conexao();
$conexao = $con->conectar();
$obj = new Usuarios();
echo json_encode($obj->recuperarDadosEdicaoUsuario($idUsuario));
Função php que recupera dados provindos da base de dados
public function recuperarDadosEdicaoUsuario($idUsuario)
{
$con = new Conexao();
$conexao = $con->conectar();
$sql = "SELECT u.idUsuario, f.nomeFuncionario, u.email, u.senha, r.idROLE_USER, r.tipoROLE_USER from usuarios as u inner join ROLE_USERS as r on u.idRole_Users = r.idROLE_USER INNER JOIN funcionarios as f on u.idFuncionario = f.idFuncionario where u.idUsuario = '$idUsuario'";
$result = mysqli_query($conexao, $sql);
$resultItem = mysqli_fetch_row($result);
$dados = array(
"idUsuario" => $resultItem[0],
"nomeFuncionario" => $resultItem[1],
"emailUsuario" => $resultItem[2],
"senhaUsuario" => $resultItem[3],
"idRoleUsers" => $resultItem[4],
"tipoRole" => $resultItem[5]
);
return $dados;
}