Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, gostaria de saber como que eu faço o envio de um ID em PHP que se encontra dentro de uma tag <a></a> para a mesma página, mas, se não fosse só isso, ele deve exibir um modal, e dentro deste modal irei fazer uma query em php para obter os dados que se encontram utilizando este mesmo ID obtido, tudo isso sem dar refresh...
Não sei se é possível, mas...
<a href="#" class="btn btn-info tip-top" data-id="<?php echo $linha['idLancamentos'] ?>">
<i class="fa fa-pencil fa fa-white"></i>
</a>
O modal é este:
<div class="modal fade" id="modal-new" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<center>
<span class="modal-delete-title">Testando Modal</span>
</center>
</div>
<div class="modal-body">
<?php
$id = $_POST['id_test'];
$seleciona = $pdo->prepare(" SELECT * FROM teste WHERE id = :id ");
$seleciona->execute(array(
':id' => $id
));
while ($linhaTeste = $seleciona->fetch(PDO::FETCH_ASSOC)) {
$nomeText = $linhaTest['nome'];
}
echo "O nome: ".$nomeText;
?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
<a class="delete-yes">
<button type="button" class="btn btn-danger">Ok!</button>
</a>
</div>
</div>
</div>
</div>estude sobre ajax
Irei começar :) Obrigado
Não sei se pode duplo post, então, desculpe-me des de já...
Encontrei a seguinte "solução", é bem similar, só que ela envia para outra página php que denominei de data.php, logo em seguida exibe o modal, só que o modal sai bugado, pois aparece o aparece o "fade" do modal, mas o modal em sí não aparece...
TAG:
<a href="#" class="btn btn-info tip-top .showw" id="<?php echo $linha['idLancamentos'] ?>">
<i class="fa fa-pencil fa fa-white"></i>
</a>
JS:
<script type="text/javascript">
$(function(){
$('.showw').click(function(){
var idtest = $(this).attr('id');
$.ajax({
type : 'post', // metodo post
url : 'data.php', // Pagina
data : 'id='+ idtest, // Aqui você passa seu id via ajax
success : function(r){
// Agora você pode mostrar a saída em seu modal
$('#modal-new').show(); // Aqui vai o id do modal
$('.modal-content').show().html(r); // Onde irá ser retornado a variavel
}
});
});
});
</script>
O pior de tudo é que ele não me retorna a variavel $id_enviado, pois aparece como null '-', mas se dou um echo na variavel id na página data.php ele me retorna o valor enviado corretamente '-'...
dados.php
<?php
$id_enviado = $_REQUEST['id'];
?>
Modal
<div class="modal fade" id="modal-new" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<center>
<span class="modal-delete-title">Testando Modal</span>
</center>
</div>
<div class="modal-body">
<?php
$id = $id_enviado;
$seleciona = $pdo->prepare(" SELECT * FROM teste WHERE id = :id ");
$seleciona->execute(array(
':id' => $id
));
while ($linhaTeste = $seleciona->fetch(PDO::FETCH_ASSOC)) {
$nomeText = $linhaTest['nome'];
}
echo "O nome: ".$nomeText;
?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
<a class="delete-yes">
<button type="button" class="btn btn-danger">Ok!</button>
</a>
</div>
</div>
</div>
</div>A classe ai no exemplo está errada.
<a href="#" class="btn btn-info tip-top .showw"
<a href="#" class="btn btn-info tip-top showw"
(vide . (ponto) no showw)
Inspeciona o elemento da pagina tmb e verifica se o
$('.showw') possui tag id, certinha. (após o php gerar a pagina)
Outra coisa legal é verificar na aba 'Network' se está enviando ou não.
Veja mais:
https://github.com/gabrieldarezzo/desafiosInternos/tree/master/ajax#5---acompanhar-oq-foi-enviado
Não se de cabeça é possível passar parâmetro assim via POST:
data : 'id='+ idtest, // Aqui você passa seu id via ajax
Tenho certeza que assim da:
<script type="text/javascript">
$(function(){
$('.showw').click(function(){
var idtest = $(this).attr('id');
$.ajax({
type : 'post', // metodo post
url : 'data.php?id=' + idtest, // Pagina
// data : 'id='+ idtest, // Aqui você passa seu id via ajax
success : function(r){
// Agora você pode mostrar a saída em seu modal
$('#modal-new').show(); // Aqui vai o id do modal
$('.modal-content').show().html(r); // Onde irá ser retornado a variavel
}
});
});
});
</script>
Recomendo a leitura:
https://github.com/gabrieldarezzo/desafiosInternos/tree/master/ajax
Abraços e boa sorte ;)
Arrumei tudo certinho do modo que disse, mas não estava aparecendo o modal, então resolvi tentar fazer da seguinte maneira:
$('.showw').on('click', function(){
var idtest = $(this).attr('id');
$.ajax({
type : 'post', // metodo post
url : 'data2.php?id=' + idtest, // Pagina
// data : 'id='+ idtest, // Aqui você passa seu id via ajax
success : function(r){
// Agora você pode mostrar a saída em seu modal
$('#modal-new').modal('show'); // Aqui vai o id do modal
}
});
});
E finalmente o modal se abriu, mas eu precisava mostrar onde a variavel $id do php iria retornar, sendo assim deixando desta maneira:
$('.showw').on('click', function(){
var idtest = $(this).attr('id');
$.ajax({
type : 'post', // metodo post
url : 'data2.php?id=' + idtest, // Pagina
// data : 'id='+ idtest, // Aqui você passa seu id via ajax
success : function(r){
// Agora você pode mostrar a saída em seu modal
$('#modal-new').modal('show'); // Aqui vai o id do modal
$('.modal-content').modal('show').html(r); // Onde irá ser retornado a variavel
}
});
});
Mas infelizmente não obtive sucesso, pois o "fade" aparecia e deixata a tela do "fade" mais escura que o normal, mas o modal em si não aparece...
estude sobre ajax