如何:PHP + Javascript弹出窗口

时间:2012-10-26 20:24:14

标签: php javascript popup

我有以下代码,它给我一个前端项目列表,但我想在新的弹出窗口中打开这些链接。有没有办法可以做到这一点? 谢谢。

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

    }

以下是我在前端获得的代码:

 <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://mysite.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://mysite.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>

以下是我解决它的方法:

我打开了default_item.php,发现了这个:

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>';

}

然后我可以使用jQuery调用弹出窗口[http://swip.codylindley.com/popupWindowDemo.html] [1]

以下是我的工作代码现在的样子:

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

非常感谢你们的帮助。

2 个答案:

答案 0 :(得分:3)

正如亚历克斯所说,只有PHP才能实现这一点。 PHP是在加载页面之前发生的服务器端语言。您可以使用HTML和JavaScript实现此目的。

您应该查看JavaScript函数open(),它允许您打开一个具有指定宽度/高度和URL的新窗口。

Read more about open() here

示例代码:

myWindow=window.open('http://google.com','','width=200,height=200')

这将在尺寸为200x200像素的新窗口中打开Goog​​le

要使用此代码,您必须将其插入<script>标记或外部JavaScript文件中。我建议使用它作为这样的函数:

function newWindow(url, width, height)
{
    myWindow=window.open(url,'','width=' + width + ',height=' + height);
}

然后你可以用:

来调用它
newWindow('http://google.com', 200, 200)

您可以使用onCLick属性

在代码中实现此功能
<a href="#" onclick="newWindow('http://google.com', 200, 200)">Click Me</a>

Demo of my function with HTML and JavaScript

我建议使用此功能的原因是在某些浏览器上使用target="_blank"属性只会在新选项卡中打开,您可以使用它,但我认为您需要一个全新的窗口

现在您已经在问题中添加了一些代码,我可以看到您有很多列表项,您可以简单地添加一个锚标记以使我的功能正常工作,例如:

<div class="item_cell "><img src="http://alii.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="item_cell "><a href="#" onclick="newWindow(URL, WIDTH, HEIGHT)"><img src="http://alii.com.br/joomla/images/joomd/thumbs/1350654792temporada.jpg" alt="Fotos" /></a></div>
<div class="item_cell "><a href="#" onclick="newWindow(URL, WIDTH, HEIGHT)">Exemplo de Cidade</a></div>
<div class="item_cell "><a href="#" onclick="newWindow(URL, WIDTH, HEIGHT)">São Paulo</a></div>
<div class="item_cell "><a href="#" onclick="newWindow(URL, WIDTH, HEIGHT)">Casa</a></div>
<div class="item_cell "><a href="#" onclick="newWindow(URL, WIDTH, HEIGHT)">800</a></div>

答案 1 :(得分:0)

在tour标签中添加target =“_ blank”或使用window.open方法。

e.g.: 
<a href="http://google.com" target="_blank">Google</a>
or
<script>window.open('http://google.com','','width=200,height=200'); </script>