Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera,
Estou fazendo um uma página onde, do lado esquerdo fica os titulos da enquete, e do lado direito uma div que apareca a pagina (enquete.php) logicamente com o conteudo da enquete. a ideia é o usuario clicar na pergunta do lado esquerdo, e no lado direito aparecer a pergunta e suas respostas dinamicamente.
Problema: preciso passar a a id da pergunta como parametro por ajax.
o codigo abaixo lista as perguntas do lado esquerdo.
<a href="#" id="<?php echo $linha["id"]; ?>" ><?php echo $linha["questao"]; ?></a> </p>
pesquisando um pouco sobre o AJAX achei uma funcao q talvez poderia me ajudar
$(document).ready(function() {
$("input[type=button]").click(function(event) {
var id = $(this).attr("a");
$("#box").load('enquete.php',{acc:id});
});
});
mas ainda nao consegui. enfim, a idéia é clicar no link, sem recarregar a página aparecer a enquete do lado direito de acordo com o parametro do link. AJUDA?
RESOLVIDO! Obrigado Willian, Abaixo segue a solucao para outros que tenham a mesma dúvida.
// Links para chamar determinado evento
<a href="#<?php echo $linha["id"]; ?>" id="enviar" ><?php echo $linha["ques"]; ?></a>
Funcao AJAX e JQUERY:
$(document).ready(function() {
$("a#enviar").click(function( e ) {
e.preventDefault();
var href = $( this ).attr('href');
$.ajax({
cache: false,
success: function(html){
$("#EnqueteContainer").load("enquete.php",{acc:href}); // recarrega o script com o evento e o parametro passado via o link
}
});
});
});cara.. ou você usa o $.ajax(), ou você usa o .load()
escolha um dos dois.
e atente que você não está enviando o parâmetro.
esqueça o .load() e releia o manual do $.ajax() para fazer corretamente.
Tentei usar o $.ajax () assim com o exemplo abaixo. mas ....
$.ajax({
type: "POST",
url: "enquete.php",
data: "id=href", // ?? é assim mesmo para passar o parametro?
success: ??? // funcao para recarregar a pagina na div. usei o append, e aparecei uma enquete debaixo d outra, e nao recarregando.
}
});
usando o load() o parametro até foi enviado mas foi assim ex: id = #9 (nao consigo extrair o #).
success: function( data ){
$("#EnqueteContainer").html( data );
}
para remover o #, basta manipular a string.
.replace() e pronto.
javascript básico.
Agora foi ....
$(document).ready(function() {
$("a#enviar").click(function( e ) {
e.preventDefault();
var id = $( this ).attr('href');
$.ajax({
cache: false,
type: "POST",
url: "enquete.php",
data: {id : id}, // ?? é assim mesmo para passar o parametro?
success: function( data ){
$("#EnqueteContainer").html( data );
}
});
});
});
O replace usei o str_replace do php mesmo ;) ehehe Igor muito muito fraco em JS
http://api.jquery.com/jQuery.ajax/