Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Seguinte, vou postar o código porque não sei como explicar direito rs :
<?php
include("scripts/config.php");
$p_tradicionais = mysql_query("SELECT * FROM pizzas_tradicionais ORDER BY id_produto");
while($var = mysql_fetch_array($p_tradicionais)){
$id = $var['id_produto'];
$nome = $var['nome'];
$des = $var['descricao'];
$imagem = "../pizzas/".$id.".gif";
if(!is_file($imagem)) $imagem = "../pizzas/".$id.".jpg";
if(!is_file($imagem)) $imagem = "../pizzas/".$id.".png";
if(!is_file($imagem)) $imagem = "../pizzas/naodisponivel.gif";
?>
<li class="img">
<a href=""><img src="<?php echo $imagem; ?>"></a>
<span class="nome"><?php echo $id." - ".$nome; ?></span>
</li>
<?php } ?>
Preciso que quando clicar no link ele me mostre o valor das outras variaveis dentro de uma outra div. O problema é, tem que ser na mesma página, sem da refresh e nem mostrar o id na url, porque já passo o id do cliente que estou cadastrando o pedido. Não é pra fazer, peço apenas uma orientação de vocês do fórum.
Feliz Natal pra todos!!!!
a principio, não é necessário ajax.
Apenas javascript puro, sem requisições (as)?sincronas ao servidor resolvem.
http://wbruno.com.br/blog/2011/03/12/principio-de-menu-em-abas/
Opa, surgirão novas opções rsrs enquanto esperava desenvolvi ou melhor adaptei o código do David CHC pro que eu estou querendo usando jquery + php ;). Depois de algumas alterações o código funcionou, exceto por esse detalhe:
pagina index.php
<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("a.teste").click(function(){
$("#descricao").html('<p>Carregando...</p>');
$.post("cidades.php",
{[b]id_produto[/b]:$(this).val()},
function(valor){
$("#descricao").html(valor);
})
})
})
</script>
</head>
<body>
<form action="" method="post">
<?php
$sql = "SELECT * FROM pizzas_tradicionais ORDER BY id_produto ASC";
$qr = mysql_query($sql) or die(mysql_error());
while($ln = mysql_fetch_array($qr)){
$nome = $ln['nome'];
echo '<a href="#" class="teste">'.$nome.'</a><br />';
}
?>
</form>
<!-- Aqui é onde os dados são carregados após o click -->
<div id="descricao">Clique em uma imagem para ver nome, descriçâo e preço.</div>
página processa.php
<?php
include("scripts/config.php");
$id = $_POST['nome'];
$sql2 = mysql_query("SELECT * FROM pizzas_tradicionais WHERE id_produto = '$id'") or die(mysql_error());
$linha = mysql_num_rows($sql2);
if($linha < 1){
echo "Não retornou resultados.";
}else{
while($p = mysql_fetch_array($sql2)){
$descricao = $p['descricao'];
echo $descricao;
}}
?>
A questão é esse código não está reconhecendo a variável -- $id = $_POST['nome']; -- logo não da pra puxar os detalhes do produto pelo id!
Onde estou fazendo errando?
Obrigado pela ajuda!!
$id = $_POST['id_produto'];
ops, postei errado. Já deixe essa linha desse jeito Willian e não está puxando msm assim =/
o this.val não faz sentido nesse contexto, pois você está trabalhando com a tag <a>, e não com um <input />
faça o seguinte:
{id_produto:$(this).attr('href')},
e ai:
while($ln = mysql_fetch_array($qr)){
echo '<a href="'.$ln['id_produto'].'" class="teste">'.$ln['nome'].'</a><br />';
}
aprenda a debugar ajax:
http://wbruno.com.br/blog/2011/04/14/como-debugar-ajax-firebug/
Porém, volto a dizer que não era necessário usar ajax, e você está disperdiçando recursos do servidor.
Po...vlw willian vou ler o artigo que tu postou, troquei as linhas mas o 'attr' não funcionou, tentei o each tbm, e nada o escript para no if =/. Não mando muito bem em jquery e javascript ainda mas vou continuar tentando...acho estranho não funcionar, apenas troquei os selects pela tag 'a', imaginei que daria esses erros heheh mas ta ai, gosto de de desafios e vou continuar tentando e se você quiser me ajudar com seu conhecimento fico grato Willian =) VLW!!!
para debug, faça o seguinte:
$(document).ready(function(){
$("a.teste").click(function(){
alert( $( this ).attr('href') );
você fez a alteração que pedi no php, também ne?!beleza! fiz isso e abriu um alert com uma "#" somente. Alterei a parte do php exceto pelo href="" pq tem q ficar na mesma página. Será quee é isso?
-- Se eu coloco assim:
echo '<a href="'.$ln['id_produto'].'" class="teste">'.$ln['nome'].'</a><br />';
o alert mostra o id... achamos a fonte do mal heheheh
é sim.
deixe o php assim:
echo '<a href="'.$ln['id_produto'].'" class="teste">'.$ln['nome'].'</a><br />';
e o js assim:
$("a.teste").click(function( e ){
e.preventDefault();//vai forcar para que fique na mesma pagina
alert( $( this ).attr('href') );Conhecimento é tudo kkkk to num nível básico de javascript ainda não conseguiria resolver esse problema sozinho.
Pow vlw Willian, agora ta pegando o id certim. VLW pode fechar o tópico!!!
Isto não é possível apenas com php pois não é feito apenas pelo servidor.
isto dependera de AJAX ( SERVIDOR + CLIENTE ) no nosso caso PHP + javascript.
Um tutorial bem facinho, acredito que já ajude resolva seu problema: http://w3schools.com/ajax/default.asp