2013-07-28 16 views
5

Próbuję ustawić magnific popup w niektórych formularzach. Chciałbym przekazać zmienne za pośrednictwem kotwicy html do końcowego popup. jako Var1 w tym pseudokodzie:magnific-popup przekazywanie zmiennej

<!-- HTML launcher element --> 
<a href="#test-popup?Var1=X" class="open-popup-link">Show inline popup</a> 

<!-- Popup itself --> 
<div id="test-popup"> 
    <form method="post" action=""> 
     <input type="hidden" id="myVar" name="Var1" value="[placeholder]" /> 
     <input type="submit" /> 
    </form> 
</div> 

<!-- Inizialization --> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.open_popup_link').magnificPopup({ 
     type:'inline', 
     midClick: true, 

      function() { 
       **Here some magic code that sets Var1 = X ** 
       $('#myVar').attr('value', function(i, attr){ 
       return attr.replace('[placeholder]', Var1); 
       });} 
     }); 
    }); 
</script> 

muszę tego powodu należy wygenerować serverside (masa PHP). Wyrzutni tak, że każde połączenie generuje różne dane formularza.

edit: Jedno podejście myślałem było wykorzystanie niestandardowych atrybutów w programie uruchamiającym, np:

<a href="#test-popup" data-var1="X" class="open-popup-link">Show inline popup</a> 

Ale ja naprawdę nie mogłem uzyskać właściwą składnię jQuery do gniazdowania przetwarzanie atrybutów WEWNĄTRZ magnific-popup inizjalizacja. Moja wiedza js/jquery jest bardzo prosta, więc dziękuję za wszelkie wskazówki.

Odpowiedz

8

Jak o użyciu osobnego obsługi kliknij poza ustawieniami magnificPopup który zmienia wartość swojego wkładu przy każdym kliknięciu łącza, po prostu upewnij się, aby związać go przed inicjalizacji wtyczki

HTML

Używanie dane atrybutów jak słusznie zasugerował

<a href="#test-popup" data-var1="X" class="open-popup-link">Show inline popup</a> 

Javascript

$('.open-popup-link').click(function(){ 
    $('#myVar').val($(this).data('var1')); 
}); 

$('.open_popup_link').magnificPopup({ 
    type:'inline', 
    midClick: true 
}); 
+0

Łatwy jest sexy! działa jak wdzięk dzięki! – Joram

0

Spróbuj:

JavaScript/jQuery

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

    $('.open_popup_link').magnificPopup({ 
    type:'inline', 
    midClick: true, 

     function() { 
      **Here some magic code that sets Var1 = X ** 
      Var1 = $('#myVar').val(); 
      });} 
    }); 
}); 

Nie całkiem pewien, co używasz Var1 za, ale to w jaki sposób można uzyskać wartość z wejścia do globalna zmienna Var1.

Daj mi znać, jeśli nie rozumiem, co próbujesz zrobić poprawnie.