Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
tenho esse código que envia para uma pagina via ajax os registros da tabela, no caso os nomes, até ai beleza, agora o que estou tentando fazer é que nas lista de nome ao clicar em um nome eu pegue o mesmo valor ou o id desse nome e passe de volta via post para uma página php para eu puxar exatamente tudo relacionado ao nome ou id da pessoa e abrir um modal com isso... espero que de pra entender.. o problema está em resgatar o valor do id ou nome pra passar por parametro no post
<?php
if(!empty($_GET["valor"]))
{
// O CAMPO VALOR CONTERÁ O QUE O USUARIO DIGITOU ATÉ O MOMENTO..
// CONECTA AO BANCO COLOCA PARAMENTROS IP,USUARIO,SENHA
$conexao=mysql_connect("localhost","root","pass");
//SELECIONA O BANCO DE DADOS QUE VAI USAR
mysql_select_db("escolarys");
// EXECUTA A INSTRUÇÃO SELECT PASSANDO O QUE O USUARIO DIGITOU
$sql="select * from pessoa where nome like '$_GET[valor]%'";
$resultado=mysql_query($sql) or die (mysql_error());
//VERIFICA A QUANTIDADE DE REGISTROS RETORNADOS
$linhas=mysql_num_rows($resultado);
if($linhas>0){while($pegar=mysql_fetch_array($resultado))
echo "<p>$pegar[nome]<p><br>";
}
}
?>
// JavaScript Document
// FUNÇÃO RESPONSÁVEL DE CONECTAR A UMA PAGINA EXTERNA NO NOSSO CASO A BUSCA_NOME.PHP
// E RETORNAR OS RESULTADOS
function ajax(url)
{
//alert(nick);
//alert(dest);
//alert(msg);
req = null;
// Procura por um objeto nativo (Mozilla/Safari)
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET",url,true);
req.send(null);
// Procura por uma versão ActiveX (IE)
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = processReqChange;
req.open("GET",url,true);
req.send();
}
}
}
function processReqChange()
{
// apenas quando o estado for "completado"
if (req.readyState == 4) {
// apenas se o servidor retornar "OK"
if (req.status ==200) {
// procura pela div id="pagina" e insere o conteudo
// retornado nela, como texto HTML
document.getElementById('pagina').innerHTML = req.responseText;
} else {
alert("Houve um problema ao obter os dados:n" + req.statusText);
}
}
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>BUSCA DINÂMICA</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="fancybox/jquery.fancybox-1.3.3.pack.js"></script>
<link rel="stylesheet" href="fancybox/jquery.fancybox-1.3.3.css" type="text/css" media="screen" />
<script src="js/script.js"></script>
<script>
function pesquisa(valor)url="BuscaNome.php?valor="+valor;
ajax(url);
}
$(document).ready(function(){
$('#pagina p').click(function(){
// var id = $(this).attr('id');
var value = $(this).val(); <<<<<< o problema esta aqui, ele não pega o valor do p para eu passa no post
// Pega o valor dos inputs
// var pagina = $('#pagina p').html();
alert(value);
// O DIVINO
$.post('example.php', {paginaUser : value}, function(){});
$.fancybox('example.php',{
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'padding': 0,
'margin': 0,
'type': 'iframe',
'width': 940,
'height': 600,
'scrolling': 'no',
'overlayColor': '#58595B',
'overlayOpacity': 0.53,
'opacity': true,
'centerOnScroll': false,
'showCloseButton': false
});</script>
</head>
<body>
<table width="657" border="0" bgcolor="#f7f7f7">
<tr>
<td align="center" bgcolor="#CCCCCC"><strong><font color="#FF0000" size="1" face="Verdana, Arial, Helvetica, sans-serif"><-
BUSCA DINÂMICA -></font></strong></td>
</tr>
<tr>
<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>DIGITE
AQUI O NOME DA PESSOA</strong></font>:
<!-- NOTE Q A CADA TECLA PRESSIONADA É CHAMADA A FUNÇÃO PESQUISA PASSANDO O QUE O USUARIO TEM DIGITADO ATÉ O MOMENTO -->
<input type="text" name="nome" onKeyUp="pesquisa(this.value)"></td>
</tr>
<tr>
<td>
<!-- AQUI SERÁ APRESENTADO O RESULTADO DA BUSCA DINÂMICA.. OU SEJA OS NOMES -->
<div id="pagina"></div>
</td>
</tr>
</table>
</body>
</html>o "p" não é uma input, então não é assim que pegamos o valor dessa tag. Use o html() ou text(). Ou seja, no seu código ficaria $(this).html().
Espero ter ajudado.
não funciona, vixi to quase desistindo, se eu tirar o p do click que seja ou div tanto faz ele pega o id=#pagina e o que eu quero é que ele pegue a div ou o p de dentro dessa div com id="pagina", mais ta impossvel testei o que vcs propuseram mas não consegui, não sei se sou eu que não sei mexer com jquery... sei la.. agradeço as ideias..
$(document).ready(function(){
$("#pagina p").click(function(){
//var ide = $("p").attr('id');
var value = $(this).html();
// Pega o valor dos inputs
//var pagina = $('#pagina p').html();
alert(value);
´
só pra ilustrar a ideia, eu quero ao clicar na p joão ou carlos, que ele me retorne o id ou o conteuo da p que cliquei... mas pode ser div tmb, é que tentei com div e mudei pra p..
<div id="pagina">
<p id="1">Joao</p>
<p id="2">Carlos</p>
</div>
>
Tente colocar a sua funcao click do $('#pagina p') para depois que o ajax deu a resposta dos nomes no req.status == 200
como?
funcionou assim, agora não me pergunto como..
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script src="http://code.jquery.com/jquery-latest.js"></script>
<title></title>
<script>
$(document).ready(function(){
// $(".empresaClick").click(function(){
//var empresa = $(this).children(".empresa").text();
//});
$("#pagina div").click(function(){
var valor = $(this).attr('id');
// var valor = $(this).text();
// Pega o valor dos inputs
// var valor = $('#pagina div').attr('id');
alert(valor);
}); // Fim do Click
}); // Fim do Document Read
</script>
</head>
<body>
<div id="pagina">
<div id="1">Ola</div>
<div id="2">Teste</div>
<div id="3">Funciona</div>
</div>
</body>
</html>
mais quando coloca com o ajax ele não funciona deve ter alguma coisa dando interferência e o post tmb não ta funcionando.. quem manjar disso por favor me auxilie!
boa dica Leonardo Schenfeld, fiquei encasquetado e resolvi fuçar e deu certo, agora o que não da certo é o tal do $post, se puderem analisar onde tem erro nesse $post agradeço.. enfim vou continuar a procurar... só to sentindo meio gambiarra esses códigos, mas estou aprendendo..
function processReqChange()
{
// apenas quando o estado for "completado"
if (req.readyState == 4) {
// apenas se o servidor retornar "OK"
if (req.status ==200) {
// procura pela div id="pagina" e insere o conteudo
// retornado nela, como texto HTML
document.getElementById('pagina').innerHTML = req.responseText;
$("#pagina div").click(function(){
var valor = $(this).attr('id');
// var valor = $(this).text();
// Pega o valor dos inputs
// var valor = $('#pagina div').attr('id');
alert(valor);
}); // Fim do Click
// O DIVINO
$.post('example.php', {paginaUser : valor}, function(){});
$.fancybox('example.php',{
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'padding': 0,
'margin': 0,
'type': 'iframe',
'width': 940,
'height': 600,
'scrolling': 'no',
'overlayColor': '#58595B',
'overlayOpacity': 0.53,
'opacity': true,
'centerOnScroll': false,
'showCloseButton': false
});
});
} else {
alert("Houve um problema ao obter os dados:n" + req.statusText);
}
}
}Cara, ok vamos ver se eu consigo te dar alguma luz. Quanto ao teu post, ele ta meio entranho, o fancybox era pra ser o callback dele ?
$.post('example.php', {paginaUser : valor}, function(){});
$.fancybox('example.php',{
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'padding': 0,
'margin': 0,
'type': 'iframe',
'width': 940,
'height': 600,
'scrolling': 'no',
'overlayColor': '#58595B',
'overlayOpacity': 0.53,
'opacity': true,
'centerOnScroll': false,
'showCloseButton': false
});
eu vi que o callback ta fechando vazio, não deveria ser:
$.post('example.php', {paginaUser : valor}, function(){
$.fancybox('example.php',{
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'padding': 0,
'margin': 0,
'type': 'iframe',
'width': 940,
'height': 600,
'scrolling': 'no',
'overlayColor': '#58595B',
'overlayOpacity': 0.53,
'opacity': true,
'centerOnScroll': false,
'showCloseButton': false
});
}); // fechando post.
edit: editado pois resolvi ler melhor o código
bom dia Leonardo Schenfeld, fiz isso que me disse, mas o php não está recebendo nada, fiz os testes e nada, acredito que o problema esteja nesse post do jquery... vou fazer umas mudanças se eu conseguir chegar em algo posto aqui.. desde já obrigado a todos que ajudaram de alguma forma
segue a pagina example.php pra você ter uma ideia
<?php
//$valor = $_REQUEST['pvalor'];
$valor = $_POST['pvalor'];
//extract($_POST);
//echo "teste";
//echo $valor;
//$id = "teste";
echo $valor."passando valor";
?>
só pra constar eu mudei o callback, coloquei assim
$.post('example.php', {pvalor : valor}, function(data){
alert("Data Loaded: " + data);
)};
e funcionou alguma coisa não está dando certo na hora de passar pro fancybox... ai já não consigo entender, mais vou continuar mexendo..
Tente colocar a sua funcao click do $('#pagina p') para depois que o ajax deu a resposta dos nomes no req.status == 200