joannes 0 Denunciar post Postado Março 28, 2019 Olá pessoal, estou com um problema e nao consigo resolver, antes de postar o código vou explicar aqui, em meu index.php fix buscar umas imagens em um diretorio, pois ele busca todas e monta para mim usando card materialize, já que não preferi armazenar no banco, pois, o cara não pagou o bastante para isso, nisso uso um card e junto um badges collapse, dentro do collapse quero que ao eu der um click e o collapse rola para baixo ele exiba imagens que esta dentro do controller.php que faz a mesma coisa so que com fotos para exibicao dei um include no index onde deveria mostrar as imagens, e na div coloquei um href que recupero no controller, mas nao esta adiantando, so funcio ase eu colocar como link paa outra agina, mas não é o que eu quero. como esta dentro de um foreach acho que nao acesso o conteudo e nem da echo. segue o codigo. recursivo_arquivos_fotos uso css do materialize. e outros css personalizado de exibicao de imagens do lithgalery essa parte do codigo pega minhas imagens em uma pasta e monta um card para mim arquivo index.php segue a parte que importa do codigo <?php $direct = "../mdjr/producoes/img/img_cards/"; $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($direct),RecursiveIteratorIterator::LEAVES_ONLY); /** * Pega os arquivos de imagem e monta os cardes para mim */ foreach ($files as $name => $file) { #verifica se nao é um diretorio caso não são arquivos if (!$file->isDir()) { #o metodo getRealPath tira todos os subdiretorios $filePath = $file->getRealPath(); #o metodo getBasename pega pega o nome $relativePath = $file->getBasename($filePath); #trata as barras de acordo com o SO $filePath=str_replace("\\","/",$filePath); // explode a string e dividi-lo pelo "." e pega so a posicao onde está o nome $explod = explode('.',$file->getBasename($filePath)); //substitui underline por um espaço em branco $str_replace = str_replace("_"," ",$explod[0]); // transforma a primeira letra de cada palavra em Maiúscula $upper_first_ame = ucwords($str_replace); /** * Varre o arquivo em busca de estrigs e pega liunha por linha * @var $descricao_cards * @var $linha * @var $linhas */ $descricao_cards = file("../mdjr/producoes/arquivos_links/descricao_cards.txt"); foreach($descricao_cards as $linha) { $linhas[] = $linha; } $r = count($linha); for($i = 0; $i < $r; $i++) { if(!isset($linhas[$y])) { $count = 0; $y = 0; } }/*Fim*/ ?> <br> <!--Inicio Card horizontal--> <div class="container"> <div class="row"> <div class=""> <div class="card"> <div class="card-image waves-effect waves-block waves-light"> <img src="<?php echo $direct.$file->getBasename($filePath);?>" class="activator responsive-img" alt="<?php echo $file->getBasename($filePath);?>"> </div> <div class="card-content"> <span class="card-title activator grey-text text-darken-4"><?php echo $upper_first_ame;?><i class="material-icons right">more_vert</i></span> <p><a href="#">Mais detalhes</a></p> </div> <div class="card-reveal"> <span class="card-title grey-text text-darken-4" style="font-size: 10pt"><?php echo $linhas[$y];$y++ ?><i class="material-icons right">close</i></span> <p><a href="#">Mais detalhes</a></p> </div> <ul class="collapsible"> <li> <div class="collapsible-header"><i class="material-icons">filter_drama</i><?php echo 'Ver Fotos de '. $upper_first_ame;?></div> <div class="collapsible-body" href="producoes/controller/controller.php?card=<?php echo $count++ ?>"><span><?php include "producoes/controller/controller.php"; echo $div; ?></span></div> </li> </ul> </div> </div> </div> </div> <?php } } ?> essa outra parte do codigo deixei para ao clicar ele desce e exibe as imagens que estou carregando em outro arquivo chamado controller.php <ul class="collapsible"> <li> <div class="collapsible-header"><i class="material-icons">filter_drama</i><?php echo 'Ver Fotos de '. $upper_first_ame;?></div> <div class="collapsible-body" href="producoes/controller/controller.php?card=<?php echo $count++ ?>"><span><?php include "producoes/controller/controller.php"; echo $div; ?></span></div> </li> </ul> nessa linha a baixo mostra onde a div funcioa como um link de botao que ao clicar ela chamar o controller.php <div class="collapsible-body" href="producoes/controller/controller.php?card=<?php echo $count++ ?>"> e nessa embaixo ela include o conteudo do controller .php que sera conforme o parametro pasado no link da div onde deveria exibir as imagens carregadas. <div class="collapsible-body" href="producoes/controller/controller.php?card=<?php echo $count++ ?>"><span> agora o arquivo controller.php <?php /** * Created by PhpStorm. * User: joannes * Date: 28/03/19 * Time: 15:30 */ //$options = $_GET['card']; if($_GET['card'] == '0') { ?> <div class="row escuro"> <div class="col s12 m12"> <div id="lightgallery" class="list-unstyled "> <?php $direct = "../img/cards/card_eventos"; $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($direct),RecursiveIteratorIterator::LEAVES_ONLY); foreach ($files as $name => $file) { #verifica se nao é um diretorio caso não são arquivos if (!$file->isDir()) { #o metodo getRealPath tira todos os subdiretorios $filePath = $file->getRealPath(); $tam = $file->getSize(); #o metodo getBasename pega o nome $relativePath = $file->getBasename($filePath); #trata as barras de acordo com o S.O $filePath = str_replace("\\", "/", $filePath); // explode a string e dividi-lo pelo "." e pega so a posicao onde está o nome $explod = explode('.', $file->getBasename($filePath)); //substitui underline por um espaço em branco $str_replace = str_replace("_", " ", $explod[0]); // transforma a primeira letra de cada palavra em Maiúscula $upper_first_name = ucwords($str_replace); $div = '<div class="col s12 m4 l2 item" data-aos="fade" data-src="' . $file . '" data-sub-html="<h4>Fading Light</h4><p>Descrição aqui</p>"><br> <a href="#"><img height="100%" width="100%" src="' . $file . '" alt="IMage" class="img-fluid "></a> </div>'; echo $div; } } ?> </div> </div> </div> <?php } ?> Compartilhar este post Link para o post Compartilhar em outros sites