Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal!
Eu quero que quando eu clicar no link "comprar" do código abaixo, seja aberta uma janela modal em javascript com mais informações sobre os produtos e opções de compra. Eu basicamente quero que a janela modal exiba o produto com o mesmo "id" de quando eu cliquei em "comprar"
Ex.: Eu clico em comprar > Abre a janela com as opções.
Obs.: Eu não quero o código javascript.
<?php
require("conexao.php");
$sql = "SELECT * FROM produtos WHERE tipo LIKE 'lanche'";
$qr = mysql_query($sql) or die(mysql_error());
while($ln = mysql_fetch_assoc($qr)){
echo '<span class="nomecomida">' .$ln['nome']. '</span> <br />';
echo '<a id="box" class="comprar" href="#boxmenu">Comprar</a>';
echo '<div class="descomida">' .$ln['descricao']. '</div>';
echo '<span class="preco">Preço: R$ ' .number_format($ln['preco'], 2, ',', '.').'</span>';
echo '<br /> <hr />';
}
?>Sim eu já tenho o modal pronto. Eu só não estou conseguindo fazer com que o conteúdo que eu quero apareça nela.
Sim eu já tenho o modal pronto. Eu só não estou conseguindo fazer com que o conteúdo que eu quero apareça nela.
Me mostre a função que você usa para manipular sua modal, mano mais você irá precisar do javascript, ou melhor ainda do Ajax, tipo:
$("botao").click(function(){
var ID = $(this).attr("id");
$.post("Pagina_Que_Criar_O_Conteudo.php",{ ID: ID }, function(retorno){ $("div").Modal({ conteudo: retorno }); });
return 1;
});
Assim você colocava a id do produto na id do botão e ao clicar ele cria o conteudo em outra pagina e depois retorna o resultado da pagina na modal, Tenho quase certeza que apenas com PHP que conseguirá isso.Então, como eu já disse eu tenho a modal pronta. A função foi criada com javascript, minha duvida é como falei, como capturar o id do produto ao clicar em comprar e exibir as informações dele na janela modal.
Segue o código da janela.
$(document).ready(function(){
$("a#box").click( function(ev){
ev.preventDefault();
var id = $(this).attr("href");
var alturaTela = $(document).height();
var larguraTela = $(window).width();
//colocando o fundo preto
$('#mascara').css({'width':larguraTela,'height':alturaTela});
$('#mascara').fadeIn(1000);
$('#mascara').fadeTo("slow",0.8);
var left = ($(window).width() /2) - ( $(id).width() / 2 );
var top = ($(window).height() / 2) - ( $(id).height() / 2 );
$(id).css({'top':top,'left':left});
$(id).show();
});
$("#mascara").click( function(){
$(this).hide();
$("#boxmenu").hide();
});
$('.fechar').click(function(ev){
ev.preventDefault();
$("#mascara").hide();
$("#boxmenu").hide();
});
});Hmm, você pode usar:
echo '<a id="box" class="comprar" href="#boxmenu" rel="Pagina_Para_pegar_As_infos.php?lanche_id='.$ln['nome'].'" >Comprar</a>';
$(document).ready(function(){
$("a#box").click( function(ev){
ev.preventDefault();
var id = $(this).attr("href");
var Page = $(this).attr("rel");
var alturaTela = $(document).height();
var larguraTela = $(window).width();
//colocando o fundo preto
$('#mascara').css({'width':larguraTela,'height':alturaTela});
$('#mascara').fadeIn(1000);
$('#mascara').fadeTo("slow",0.8);
var left = ($(window).width() /2) - ( $(id).width() / 2 );
var top = ($(window).height() / 2) - ( $(id).height() / 2 );
$(id).css({'top':top,'left':left});
$(id).show();
if(Page != "" && Page != null)
{
$.get(Page, function(retorno){ $(id).html(retorno); });
}
});
$("#mascara").click( function(){
$(this).hide();
$("#boxmenu").hide();
});
$('.fechar').click(function(ev){
ev.preventDefault();
$("#mascara").hide();
$("#boxmenu").hide();
});
});
e na Pagina_Para_pegar_As_infos.php:
<?php
$lanche_id = $_GET['lanche_id'];
if(isset($lanche_id)):
$sql = "SELECT * FROM produtos WHERE tipo LIKE 'lanche' AND `lanche_id`='".$lanche_id."'";
$qr = mysql_query($sql) or die(mysql_error());
while($ln = mysql_fetch_assoc($qr))
{
echo 'Nome: '.$ln['nome'].'<br />Descrição: '.$ln['descricao'];
}
endif;
?>
Claro o código ainda está muito básico porque não tenho mais informações sobre a tabela e o que irá retornar na modal, mais isso ai já está suficiente para você pode fazer o resto :DAham, beleza. Deixa eu explicar direitinho aqui que talvez fica mais fácil. Eu sou novo com php e tal por isso to tendo bastante dificuldade com isso.
A janela modal é uma div que fica escondida na página e só é revelada quando a janela aparece.
Eu imagino que tenha uma forma mais simples de fazer isso. Talvez uma variável que pega a id ao clicar em comprar e essa variável seja recebida na div da janela.
Então, mexendo aqui eu consegui utilizar o seu código, mas ainda não funcionou. O "lanche_id" não é carregado no link na hora que é aberta a janela modal. Pois no link "href" está apenas "#boxmenu", O link que está no "rel" não é carregado. E se eu adicionar
?lanche_id='.$ln['nome'].'?lanche_id='.$ln['id'].'
no href junto com o "#boxmenu" a janela modal não é aberta.
Você certamente irá precisar de javascript para abrir o Modal e colocar o conteúdo, Uma dúvida você já monteu seu Modal? não tenho certeza mais não existe uma Modal pronto amigo você deve cria-la e dificilmente irá conseguir fazer isso tudo sem javascript