2014-01-13 3 views
0

У меня есть ul и связка ссылок, окружающих lis, которая извлекает данные из массива и выдает разные значения. Я бы хотел, когда вы нажмете эти ссылки, он передаст одно из значений в fancybox, так как прямо сейчас он просто ударяет по первому параметру из массива каждый раз, независимо от того, какую ссылку я нажимаю.Передача переменной в fancybox div

<ul> 
<?php 
while(list($key, $val) = each ($arrayresult)) 
     {        
      echo '<a href="#inline" class="fancybox"><li style="padding: 2px; margin: 0px; list-style: none;">'; 
      echo '<img src="../images/profilepics/'.$charpic.'" style="float: right; padding-left: 10px; width: 40px;" />'; 
      echo '<h2>'.$val.' Position</h2>'; 
      echo '<p>Click here to apply for this position.</p>'; 
      echo '</li></a>'; 

      echo '<div id="inline" style="display:none;">'; 
      echo '<h1>Request Character Transfer</h1>'; 
      echo '<hr>'; 
      echo '<form id="transfer" action="TransferRequest" method="post">'; 
      echo '<label for="transfer_character">Character to Transfer</label>'; 
      echo '<select id="transfer_character" name="transfer_character">'; 
      echo '<option value="">Select Character</option>'; 

      $request_character_query = "SELECT * FROM character_database WHERE character_active ='1' AND user_id = $user_id ORDER BY character_firstname DESC"; 
      $request_character_result = mysqli_query($mysqli, $request_character_query); 

       /*** loop over the results ***/ 
       foreach($request_character_result as $charrow) 
       { 
        /*** create the options ***/ 
        echo '<option value="'.$charrow['character_id'].'"'; 
        if($charrow['character_firstname']==42) 
        { 
         echo ' selected'; 
        } 
        echo '>'. $charrow['character_firstname'] . " " . $charrow['character_surname'] . '</option>'."\n"; 
       } 
      echo '</select>'; 
      echo '<p>Applying for the '.$val.' position on the '.$shipname.'</p>'; 
      echo '<p>If this is correct, please submit below</p>'; 
      echo '<input type="hidden" value="'.$val.'" name="transfer_position">'; 
      echo '<input type="hidden" value="'.$ship_id.'" name="transfer_ship">'; 
      echo '<input type="hidden" value="'.$user_id.'" name="transfer_player">'; 
      echo '<input value="Submit Request" type="submit" class="styled">'; 
      echo '</form>'; 
      echo '</div>'; 
     } 
    ?> 
    </ul> 

У меня есть весь мой код в UL, надеясь, что это сработает, но, видимо, нет. Я также попытался передать переменную в URL-адрес, но затем fancybox не открывается. Это код fancybox;

<script type="text/javascript"> 
$(document).ready(function() { 
    $(".fancybox").fancybox(); 
}); 
</script> 

Ницца и простота.

ответ

2

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

<div id="inline" style="display:none;"> 

должно быть:

echo '<div id="inline'.$val.'" style="display:none;">'; 

при условии, что ваш $ Допустимы уникален каждый цикл. В противном случае используйте что-то еще уникальное, даже счетчик циклов, который увеличивает каждый цикл, будет в порядке.

затем в коде ссылка:

echo '<a href="#inline'.$val.'" class="fancybox"><li style="padding: 2px; margin: 0px; list-style: none;">'; 
+0

Hah! Я пробовал что-то подобное раньше, используя? Pos = '. $ Val.' вместо просто '. $ val.' и это была моя ошибка. Ты фантастический, спасибо! – Cthulhuite

0

В ваших ссылках, использовать данных- * атрибут, как это:

<a href="..." data-recordID="123" ... >click here</a> 

Тогда в вашем JavaScript сделать что-то вроде:

$(document).ready(function(){ 
    $(".fancybox").fancybox(
     { 
      beforeLoad: function(){ 
         $('#transfer_position').val($(this).data('recordID'); 
         } 
     } 
    ); 
}); 

Это должно загрузить значение в атрибуте data-recordID вашей ссылки в поле формы с идентификатором «transfer_post» ион "перед загрузкой содержимого в fancybox.

Смежные вопросы