Ir ao conteúdo

Dúvida PHP - Abrir em janela Pop-up


mah2602

Posts recomendados

Postado

Olá pessoal, gostaria de saber se alguém pode me ajudar, já que eu quase não tenho prática com PHP.

Tenho o seguinte código e gostaria que os links dos itens gerados fossem abertos em uma pop-up - de preferência igual as em HTML onde eu posso escolher a altura e largura da janela.


echo '<div class="itemlist itemlist_type'.$this->type->id.'">';

if(count($this->items)) {


//all the item list part display here

for($i=0;$i<count($this->items);$i++) {

$item = $this->items[$i];

require(dirname(__FILE__).DS.'default_item.php');


}

}

else
echo JText::_('NORESFOND');

echo '</div>';

Isso é possível? Muito obrigada!

Postado

Creio que seria isso:

como criar uma janela popup


<script language="javascript">
var win = null;
function NovaJanela(pagina,nome,w,h,scroll){
LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',resizable'
win = window.open(pagina,nome,settings);
}
</script>


<a href="http://www.codigofonte.com.br" onclick="NovaJanela(this.href,'nomeJanela','450','450','yes');return false">Nova Janela de Exemplo</a>

Seu link gerado viria aqui


<a href="seu link gerado pelo php" onclick="NovaJanela(this.href,'nomeJanela','450','450','yes');return false">Nova Janela de Exemplo</a>

Postado

manoelps, obrigada pela resposta! O problema é que eu não sei como adicionar este script no código em HTML, porque ele teoricamente só existe no front-end sendo gerado pelo código em PHP.

Pelo que eu pesquisei na internet e em outros fóruns, eu teria que adicionar uma outra página PHP a essa, com algo mais ou menos assim:

<div class="item_cell "><?PHP echo'<a href="#" onclick="newWindow(URL, WIDTH, HEIGHT)">';?>Link para o item</a></div>

Só que eu não sei como fazer essa ligação entre os dois arquivos PHP para gerar a pop-up.

Aqui está o código PHP um pouco mais completo e o HTML resultante no site.

echo '<div class="item_row_header">';

for($i=0;$i<count($this->fields);$i++) {
echo '<div class="item_cell jdheader'.$this->fields[$i]->cssclass.'">';

//to display the header with/without sorting option

if(in_array($this->fields[$i]->type, array(10,11,12,13)))

echo $this->fields[$i]->name;

else

echo JHTML::_('jdgrid.sort', $this->fields[$i]->name, 'field_'.$this->fields[$i]->id, @$this->cparams->filter_order_Dir, @$this->cparams->filter_order );

echo '</div>';

}

echo '<div class="clr"></div></div>';

}

echo '<div class="itemlist itemlist_type'.$this->type->id.'">';

if(count($this->items)) {

//all the item list part display here

for($i=0;$i<count($this->items);$i++) {

$item = $this->items[$i];

require(dirname(__FILE__).DS.'default_item.php');

}
[/QUOTE]

[QUOTE]<div class="item_row_header">
<div class="item_cell jdheader"><a href="javascript:void(0);" id="sort" class='field_70 desc' title="Clique para ordenar por coluna">Título</a></div>
<div class="item_cell jdheader">Fotos</div>
<div class="item_cell jdheader"><a href="javascript:void(0);" id="sort" class='field_63 desc' title="Clique para ordenar por coluna">Cidade</a></div>
<div class="item_cell jdheader"><a href="javascript:void(0);" id="sort" class='field_64 desc' title="Clique para ordenar por coluna">Estado</a></div>
<div class="item_cell jdheader"><a href="javascript:void(0);" id="sort" class='field_60 desc' title="Clique para ordenar por coluna">Tipo do Imóvel</a></div>
<div class="item_cell jdheader"><a href="javascript:void(0);" id="sort" class='field_67 desc' title="Clique para ordenar por coluna">Valor R$</a></div>
<div class="clr"></div>
</div>
<div class="itemlist itemlist_type15">
<div class="item_row_bg featured itemrow_type15">
<div class="item_content">
<div class="item_cell "><a href="/joomla/temporada/imoveis/itens/ver/temporada-destaque">Temporada Destaque</a></div>
<div class="item_cell "><img src="http://meusite.com.br/joomla/images/joomd/thumbs/1350654862temporada-destaque.jpg" alt="Fotos" /></div>
<div class="item_cell ">Exemplo de Cidade</div>
<div class="item_cell ">São Paulo</div>
<div class="item_cell ">Casa</div>
<div class="item_cell ">600</div>
<div class="clr"></div>
</div>
</div>
<div class="item_row itemrow_type15">
<div class="item_content">
<div class="item_cell "><a href="/joomla/temporada/imoveis/itens/ver/temporada">Temporada</a></div>
<div class="item_cell "><img src="http://meusite.com.br/joomla/images/joomd/thumbs/1350654792temporada.jpg" alt="Fotos" /></div>
<div class="item_cell ">Exemplo de Cidade</div>
<div class="item_cell ">São Paulo</div>
<div class="item_cell ">Casa</div>
<div class="item_cell ">800</div>
<div class="clr"></div>
</div>
</div>
</div>

O resultado fica assim: RzOTd.png

Aquele link que é gerado, onde está escrito o nome do imóvel, é o que o cliente quer que apareça em uma nova pop up.

  • Moderador
Postado

Mah, a melhor solução para isso é usar modal e ajax. Pesquise sobre o uso do modal do maujor ( que é o mais simples e fácil de implementar) para criar esse "pop up" e dentro dele podes retornar os dados dentro deste modal usando ajax.

Eu usei esta ténica quando desenvolvi um sistema de pesquisa onde retornava uma lista de nomes , onde cada nome era um link que abria um modal com as informaçoes de cada registro.

Lembrando que existe dois jeitos de fazer, com o uso do jquery ou javascript puro.

veja neste link: http://rafaelcouto.com.br/consulta-interativa-sem-refresh-com-ajax/

Contem um tutorial, onde é feito uma busca dinâmica e lista as noticias em uma div( aberta como modal). se você estudar isto, será capaz de implementar no seu projeto. O objetivo é fazer você entender como funciona a comunicação via ajax e retornar os dados do banco no lugar onde você desejar.

Att,

Dif

Postado

Tentando entender melhor o código, eu percebi que o arquivo que eu postei chamava o default_item.php, que é o que mostra as opções no site.

Abrindo o arquivo default_item.php eu encontrei o tal do link em HTML:



if($j==0) {

echo '<a href="'.JRoute::_('index.php?option=com_joomd&view=item&layout=detail&typeid='.$item->typeid.'&id='.$item->id).'">';

echo $this->field->displayfieldvalue($item->id, $this->fields[$j]->id, true);

echo '</a>';

}

Tentei usar o código que o manoelps postou, mas deu erro porque o formato em que o link está sendo chamado no arquivo é um pouco diferente.

Solucionei o problema usando o jQuery para chamar a pop up através de classe. http://swip.codylindley.com/popupWindowDemo.html

Ficou assim e funcionou muito bem:

echo '<a class="propriedade" href="'.JRoute::_('index.php?option=com_joomd&view=item&layout=detail&typeid='.$item->typeid.'&id='.$item->id).'">';

Obrigada a todos, resolvido o problema! Abraços!

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!