Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Francisco Leal

pegar valor de div dentro de outra

Recommended Posts

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){
//EXECUTA UM LOOP PARA MOSTRAR OS NOMES DAS PESSOAS
// VALE LEMBRAR QUE TODOS ESSES RESULTADOS SERAO MOSTRADOS DENTRO DA PAGINA INDEX.PHP
// DENTRO DO DIV 'PAGINA'

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)
{
//FUNÇÃO QUE MONTA A URL E CHAMA A FUNÇÃO AJAX
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
      });
}); // Fim do Click
}); // Fim do Document Read

</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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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);
}
}
} 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.