Ir para conteúdo

POWERED BY:

Arquivado

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

uiLhian

Pegar dados "direto" sem redireciona pagina

Recommended Posts

por exemplo tenho uma galeria de imagens e ao clicar num determinado album ele redireciona para id clicada abrindo as imagens referente a id.

tipo: http://www.site.com/portifolio.php?id=ID

<div class="thumbnail">
<a href="portifolio.php?ID=<?php echo($o->obraID); ?>">
<img src="<?php echo serverPadrao(); ?>/thumb.php?img=fotos/<?php echo($f->fotoNOME); ?>" class="img-responsive" alt="">
</a>
</div>

gostaria de saber se ao inves de redireciona quando eu clicar em um determinado album ele ja "abrir" a galeria referente no fancybox...

IF (isset($_GET['ID']))
{
try {
$obraID = $_GET['ID'];
$queryOF = $connection->query("
SELECT obraID,fotoOBRAID,fotoNOME
FROM obras
INNER JOIN fotos ON obraID = fotoOBRAID
WHERE fotoOBRAID = $obraID 
ORDER BY fotoCAPA ASC
 ");


IF ($queryOF->rowCount() !== 0)
{
foreach($queryOF->fetchAll(PDO::FETCH_OBJ) as $l)
{
?>
<div class="col-sm-6 col-md-4 mg">
<a href="fotos/<?php echo($l->fotoNOME) ?>" data-fancybox-group="thumb" class="fancybox-thumbs thumbnail">
<img src="<?php echo serverPadrao(); ?>/thumb.php?img=fotos/<?php echo($l->fotoNOME); ?>" class="img-responsive" alt="">
</a>
</div>
<?php
}
}
}
catch (PDOException $e)
{            
            echo '<div class="alert alert-danger"><strong>Erro:</strong>' + $e->getMessage(); '</div>';
}
}

desde ja muito obrigado!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve usar AJAX para resolver este problema. Só para esclarecer a dúvida de alguns, AJAX não é uma biblioteca do java.swing.* como alguns aqui já falaram. Ajax não passa de uma técnica usada na linguagem JavaScript que também não veio do java.

Voltando ao assunto, você pode utilizar o jquery para resolver teu problema:

http://api.jquery.com/jQuery.get/

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom estou tentando da seguinte forma:

getUrl.js

function getVar(name)
         {
         get_string = document.location.search;         
         return_value = '';
         
         do { //This loop is made to catch all instances of any get variable.
            name_index = get_string.indexOf(name + '=');
            
            if(name_index != -1)
              {
              get_string = get_string.substr(name_index + name.length + 1, get_string.length - name_index);
              
              end_of_value = get_string.indexOf('&');
              if(end_of_value != -1)                
                value = get_string.substr(0, end_of_value);                
              else                
                value = get_string;                
                
              if(return_value == '' || value == '')
                 return_value += value;
              else
                 return_value += ', ' + value;
              }
            } while(name_index != -1)
            
         //Restores all the blank spaces.
         space = return_value.indexOf('+');
         while(space != -1)
              { 
              return_value = return_value.substr(0, space) + ' ' + 
              return_value.substr(space + 1, return_value.length);


              space = return_value.indexOf('+');
              }
          
         return(return_value);        
         }

ae coloquei um include da getUrl.js no portifolio.php

e estou chamando assim:

<a href="#" onclick="document.get_vars.getVar_value.value = getVar(<?php echo($o->obraID); ?>);">

o erro que me retorna é esse: Uncaught TypeError: Cannot read property 'getVar_value' of undefined

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal bom dia! Sou novo por aqui e estou precisando muito da ajuda de vocês. Tenho o seguinte código:

<div class='separador'></div>

<div class="item">
<span>Assinatura:</span> <?php echo $usuario_perfil['assinatura_usuario'];
echo $usuario_perfil['id_usuario'];
echo $assinaturavenda_venda['nome_assinatura'];
echo $usuario_perfil['situacao_assinaturavenda'];
echo $usuario_perfil['validade_assinaturavenda']; ?>
</div>
que é parte do perfil de usuário. Na página de perfil só aparece os dados (id_usuario e assinatura_usuario) não aparece as demais informações solicitadas, alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

minha opnião seria você criar sua propria janela modal para abrir estas imagens...

mas a questão em si não nem o modal, o script esta funcionando correto,

só estou precisando fazer com que ele "execute" direto ao inves de redireciona a pagina.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto é fazer por ajax.

 

1º - Faça a requisição assíncrona;

2º - Envie o retorno da requisição para o elemento desejado (DOM);

3º - Execute a exibição da fancybox.

 

Basicamente é isso. Pesquise um pouco sobre ajax, não é difícil. Se já usa jQuery, é bem fácil imeplementar. Existem outras bibliotecas também, mas é jQuery que está na "moda".

 

Se tiver dúvidas de como implementar, pergunte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto é fazer por ajax.

 

1º - Faça a requisição assíncrona;

2º - Envie o retorno da requisição para o elemento desejado (DOM);

3º - Execute a exibição da fancybox.

 

Basicamente é isso. Pesquise um pouco sobre ajax, não é difícil. Se já usa jQuery, é bem fácil imeplementar. Existem outras bibliotecas também, mas é jQuery que está na "moda".

 

Se tiver dúvidas de como implementar, pergunte.

cara sinceramente não manjo nada, sou apenas "curioso" nesse mundo de programação, estou montando essa galeria só atraves de pesquisas na net e tal, e vou fazendo do jeito que da.

caso possa me esclarecer mais sobre, agradeceria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom já que está iniciando, é melhor aprender ajax do jeito tradicional, com javascript puro.

 

De uma lida nesse tutorial, tem boas explicações:

http://blog.doh.ms/2008/08/18/ajax-e-php-aprendendo-a-base-1/?lang=pt-br

Compartilhar este post


Link para o post
Compartilhar em outros sites

no caso isso aqui daria pra sanar minha necessidade ?

pois estou testando mas não obtendo resultado.

 

// pegando o HTTP Object
function getHTTPObject(){

    if (window.ActiveXObject)
    {
        return new ActiveXObject("Microsoft.XMLHTTP"); // IE
    }
    else if (window.XMLHttpRequest)
    {
        return new XMLHttpRequest(); // Outros Navegadores
    }
    else{
        alert("Seu Navegador não suporta AJAX."); // Navegadores antigos
        return null;
    }
}

// Mudando o valor do campo 'saida'
function setOutput(){

    if (httpObject.readyState == 4)
    {
        document.getElementById('saida').value = httpObject.responseText;
    }

}
// Implementando a função que envia os dados digitados no primeiro campo para o PHP
function enviaKey(){


    httpObject = getHTTPObject();


    if (httpObject != null)
    {
        httpObject.open("GET", "portifolio.php?ID="+document.getElementById('obraID').value, true);
        httpObject.send(null);
        httpObject.onreadystatechange = setOutput;
    }

}


var httpObject = null;
<a href="#" id="<?php echo($o->obraID); ?>" onclick="enviaKey();">

 

Erro que me retorna: Uncaught TypeError: Cannot read property 'value' of null

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em qual linha ocorre o erro? Nesta?

document.getElementById('saida').value = httpObject.responseText;

Compartilhar este post


Link para o post
Compartilhar em outros sites

provavelmente, o problema está neste trecho:

document.getElementById('obraID')

Quando você tenta retornar o valor (.value) e o objeto não existe, ele retorna o erro que você postou.

 

Verifique se o ID existe e se está correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele deveria pegar daqui não ?

 

$connection = conectar();IF (isset($_GET['ID'])){try {$obraID = $_GET['ID'];$queryOF = $connection->query("SELECT obraID,fotoOBRAID,fotoNOMEFROM obrasINNER JOIN fotos ON obraID = fotoOBRAIDWHERE fotoOBRAID = $obraID ORDER BY fotoCAPA ASC ");IF ($queryOF->rowCount() !== 0){foreach($queryOF->fetchAll(PDO::FETCH_OBJ) as $l){?><div class="col-sm-6 col-md-4 mg"><a href="fotos/<?php echo($l->fotoNOME) ?>" data-fancybox-group="thumb" class="fancybox-thumbs thumbnail"><img src="<?php echo serverPadrao(); ?>/thumb.php?img=fotos/<?php echo($l->fotoNOME); ?>" class="img-responsive" alt=""></a></div><?php}}}catch (PDOException $e){                        echo '<div class="alert alert-danger"><strong>Erro:</strong>' + $e->getMessage(); '</div>';}}

 

 

 

? :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo o erro ocorre pq o ID da div não existe no contexto HTML.

 

O ID "obraID" é um elemento html e deve ter o ID setado.

 

faça essas mudancas para arrumar: (mude apenas a linha de comando como está abaixo)


1) -> <a href="#" onclick="enviaKey(<?php echo($o->obraID); ?>);">

 

2) -> httpObject.open("GET", "portifolio.php?ID="+ obraID, true);

 

3) -> function enviaKey(obraID)

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.