Динамический контент внутри fancybox через get - PullRequest
0 голосов
/ 02 июня 2011

У меня есть несколько экземпляров fancybox, работающих одновременно, как это:

<a class="grupito" href="?id=1#various1">Group 1</a>
<a class="grupito" href="?id=2#various1">Group 2</a>
<a class="grupito" href="?id=3#various1">Group 3</a>

Отображение следующего div:

<div style="display: none;">
   <div id="various1">
       //Select that shows the people from the group here depending on the id 
       //of the link with a $_GET['id'] variable (from database)
   </div>
</div>

С этим звонком:

$("a.grupito").fancybox({
            'titlePosition'     : 'inside',
            'transitionIn'      : 'none',
            'transitionOut'     : 'none'
        });
});

Это не работает для меня. Fancybox говорит: «Запрошенный контент не может быть загружен. Пожалуйста, попробуйте позже. " 1010 *

РЕДАКТИРОВАТЬ: На самом деле, проверяя его с firebug я вижу, что я получаю ошибку 404. Кто-нибудь может указать мне правильное направление, чтобы увидеть, как я могу достичь этого?

Ответы [ 3 ]

2 голосов
/ 01 октября 2012

Я искал решение для этого, но не смог его найти.

Я создаю список дел, и когда вы нажимаете кнопку "Изменить", появляется fancybox с полями для редактирования каждого человека в-до предмета.

В конце концов я нашел очень простой способ сделать это.

Вот моя ссылка для редактирования элемента:

<div class='edit' id='$id'>
    <a href='#editItem-$id' class='editLink'>edit</a>
</div>

Посмотрите внимательно на: #editItem-$id

Тогда вот мой контент, который он загружает.

$getItemId = mysql_query("SELECT * FROM the_items");
$num_rows = mysql_num_rows($getItemId);

while($row = mysql_fetch_array($getItemId)) {
$this_is_the_id= $row['this_is_the_id'];
$this_is_the_title= $row['this_is_the_title'];
$iteminfo= $row['iteminfo'];
$highlow= $row['highlow'];
$whoto= $row['whoto'];
$finished= $row['finished'];
$date= $row['date'];

    echo "<div style='display: none'>
              <div id='editItem-$id'>
                  <div class='item'>
                      <div class='itembg'>
                          <div class='title'>
                              <input type='text' id='title' name='title' value='$this_is_the_title' />
                          </div>
                          <div class='controls'>
                              <div class='edit' id='$id'>
                                  <a href='#editItem-$id'>edit</a>
                              </div> 
                              <div class='delete' id='$id'>
                                  <a href='?act=delete&id=$id'>delete</a>
                              </div>
                          </div>
                          <div class='item_desc' style='margin-top: 10px;'>
                              <div class='description'>
                                  <textarea id='description'>$iteminfo</textarea>
                              </div>
                          </div>
                      </div>
                  </div>
              </div>
          </div>";

И снова, посмотрите здесь: editItem-$id на div.

Я удалил свою правильную информацию в целях безопасности.

Но да, это тянет за собой контент, который я хочу, потому что у каждого из них есть индивидуальные и уникальные идентификаторы из базы данных.

1 голос
/ 02 июня 2011

Если я правильно понимаю ваши вопросы, думаю, вам, возможно, придется пересмотреть свой подход. Я не уверен, чего вы хотите добиться, добавив? Id = 1 к вашему якору. Fancybox показывает контент, который уже загружен на страницу. После того, как HTML-страница отрисована и отправлена ​​в браузер, PHP не играет никакой роли в том, что происходит на стороне клиента.

Вам необходимо отобразить весь контент для каждого из полей при загрузке страницы, а затем сослаться на них во внутренних ссылках, как указано ниже. Fancybox имеет дело только с содержимым, которое было загружено на страницу, поэтому вам нужно выяснить содержимое каждого блока во время его первоначального отображения.

<a class="grupito" href="#various1">Group 1</a>
<a class="grupito" href="#various2">Group 2</a>
<a class="grupito" href="#various3">Group 3</a>

<div style="display: none;">
   <div id="various1">
       //The content from group 1
   </div>
   <div id="various2">
       //The content from group 2
   </div>
   <div id="various3">
       //The content from group 3
   </div>
</div>
0 голосов
/ 02 июня 2011

Вы можете использовать jquery.load () , чтобы сделать запрос к вашему серверу и динамически загрузить этот контент в один блок fancybox.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...