Olá estou com dificuldade em mostrar uma mensagem estilo modal quando salvar as informações, eu conseguir colocar apenas uma mensagem normal mas queria com efeito de modal já tentei de varias forma e não consegui, se alguém poder me ajuda fico muito grato
function save($table = null, $data = null) {
$database = open_database();
$columns = null;
$values = null;
foreach ($data as $key => $value) {
$columns .= trim($key, "'") . ",";
$values .= "'$value',";
}
$columns = rtrim($columns, ',');
$values = rtrim($values, ',');
$sql = "INSERT INTO " . $table . "($columns)" . " VALUES " . "($values);";
try {
$database->query($sql);
$_SESSION['message'] = 'Registro cadastrado com sucesso.';
$_SESSION['type'] = 'success';
echo
'<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<strong></strong>Úsuario cadastrado com sucesso!!!
</div>';
} catch (Exception $e) {
$_SESSION['message'] = 'Nao foi possivel realizar a operacao.';
$_SESSION['type'] = 'danger';
echo
'<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<strong>OK!</strong> Erro ao alterar!!!
</div>';
}
close_database($database);
}
Olá João!
Então, sua dúvida se refere mais a JavaScript e CSS, utilizando Bootstrap, do que a programação em PHP.
Mas respondendo a sua pergunta, a mensagem não é exibida em modal devido as classes que você está usando, a classe “alert” pinta o fundo da div de acordo com a opção informada (“success”, “error” e etc) e realiza outras alterações de estilo CSS dentro da div.
Para criar o modal, use a classe “modal” do próprio bootstrap, você pode estudar no site http://getbootstrap.com, lá você encontra bastante exemplos e todos bem explicados.
Você vai encontrar as informações sobre modal no menu “Javascript”.
Boa sorte!
2 curtidas
Olá, Fui até o site do bootstrap e copie a classe do modal e colei no lugar na classe alerta, mas não mostra a modal, quando eu clico em salvar não mostrar o modal.
Olá!
O código não está funcionando pois ainda falta um evento JavaScript para disparar a ação do modal.
Depois vou te auxiliar a mudar sua estrutura, para ficar algo mais organizado e padronizado.
Mas para você ver o modal funcionando, adicione as seguintes linhas no final do comando echo:
<script>
$('.modal').modal('show');
</script>
1 curtida
Ola, agradeço muito a sua atenção, fiz do jeito que você me disse colocar o script depois do echo mais no navegador aparece a seguinte mensagem;
“Parse error: syntax error, unexpected ‘<’ in D:\xampp\htdocs\marketPrice\customers\functions.php on line 84”
O código ta desse jeito.
function save($table = null, $data = null) {
$database = open_database();
$columns = null;
$values = null;
foreach ($data as $key => $value) {
$columns .= trim($key, “’”) . “,”;
$values .= “’$value’,”;
}
$columns = rtrim($columns, ‘,’);
$values = rtrim($values, ‘,’);
$sql = "INSERT INTO " . $table . "($columns)" . " VALUES " . "($values);";
try {
$database->query($sql);
$_SESSION['message'] = 'Registro cadastrado com sucesso.';
$_SESSION['type'] = 'success';
echo
'<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>';
<script>
$('.myModal').modal('show');
</script>
Rapaz evite misturar html com php dessa forma…
Tente separar um pouco, nem que seja no mesmo arquivo, por exemplo…
<?php
function save($table = null, $data = null) {
$database = open_database();
$columns = null;
$values = null;
foreach ($data as $key => $value) {
$columns .= trim($key, "'") . ",";
$values .= "'$value',";
}
$columns = rtrim($columns, ',');
$values = rtrim($values, ',');
$sql = "INSERT INTO " . $table . "($columns)" . " VALUES " . "($values);";
try {
$database->query($sql);
$_SESSION['message'] = 'Registro cadastrado com sucesso.';
$_SESSION['type'] = 'success';
} catch (Exception $ex) {
$_SESSION['type'] = 'error';
}
}
?>
Depois no html mais abaixo…
<?php if ($_SESSION['type'] == 'success'): ?>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
<script>
$('.myModal').modal('show');
</script>
<?php endif; ?>
2 curtidas
Olá João!
O script não funcionou por dois motivos.
1º - Você alterou o script que eu te passei para:
<script>
$('.myModal').modal('show');
</script>
Desta forma não funciona pois o que você está dizendo é para a classe “myModal” receber a função “show” do modal. Mas a classe “myModal” não existe.
Volte a usar da maneira que eu te passei:
<script>
$('.modal').modal('show');
</script>
Aqui você diz para a classe “modal” (que existe) receber a função “show” do modal. Então agora irá funcionar.
2º - O script que eu te passei deve estar dentro do echo, da seguinte forma:
echo '
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
<script>
$(".modal").modal("show");
</script>
';
E como seu echo está entre aspas simples, as strings do script devem estar entre aspas duplas, de acordo com meu exemplo acima.
1 curtida
Olá, tentei fazer dessa forma que você me orientou, mas não apareceu o modal tentei colocar o modal na pagina da cadastro, aonde tem os formulários e no arquivo funtions.php aonde tem a function save, mas não funcionou.