Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][jQuery] - PopUp + przekazanie wartości zmiennej
Forum PHP.pl > Forum > PHP
peja1990
Witam, mam MEGA problem !
Mianowicie mam wyciągnięte rekordy z bazy danych mySQL, które (to chyba normalne) mają nadane unikalne ID.
Chcę zrobić aby po kliknięciu w ikonkę wybranego rekordu otworzyło się okienko PopUp z mini formularzem, który po wypełnieniu UPDATE'uje wartości wybranego wcześniej rekordu.
Jednak jak okienko PopUp nie wywołuje adresu odsyłacza tylko od razu je "odpala".
Próbowałem na wszelkie sposoby i nie idzie przekazać wartości zmiennej do takiego okienka (chodzi o ID rekordu) aby formularz zUPDATE'ował odpowiedni rekord.

Nie widzę innego sposobu jak przekazać wartość tej zmiennej czyli ID rekordu przez skrypt jQuery, jednak że nie znam jQuery zwracam się z prośbą do Was abyście mi pomogli z przekazaniem tej zmiennej do skryptu jQ.

Na poniższym obrazku przedstawiam ikonkę, która po najechaniu na nią ma zdefiniowany odpowiedni adres (czyli z ID rekordu [&file=ID]).


Skrypt jQ:
  1. $(document).ready(function(){
  2. //When you click on a link with class of poplight and the href starts with a #
  3. $('a.poplight[href^=#]').click(function() {
  4. var popID = $(this).attr('rel'); //Get Popup Name
  5. var popURL = $(this).attr('href'); //Get Popup href to define size
  6.  
  7. //Pull Query & Variables from href URL
  8. var query= popURL.split('?');
  9. var dim= query[1].split('&');
  10. var popWidth = dim[0].split('=')[1]; //Gets the first query string value
  11.  
  12. //Fade in the Popup and add close button
  13. $('#' + popID).fadeIn().css({ 'width': Number( popWidth ) }).prepend('<a href="#" class="close"><img src="close_pop.png" class="btn_close" title="Zamknij" alt="Zamknij" /></a>');
  14.  
  15. //Define margin for center alignment (vertical + horizontal) - we add 80 to the height/width to accomodate for the padding + border width defined in the css
  16. var popMargTop = ($('#' + popID).height() + 80) / 2;
  17. var popMargLeft = ($('#' + popID).width() + 80) / 2;
  18.  
  19. //Apply Margin to Popup
  20. $('#' + popID).css({
  21. 'margin-top' : -popMargTop,
  22. 'margin-left' : -popMargLeft
  23. });
  24.  
  25. //Fade in Background
  26. $('body').append('<div id="fade"></div>'); //Add the fade layer to bottom of the body tag.
  27. $('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn(); //Fade in the fade layer
  28.  
  29. return false;
  30. });
  31.  
  32. //Close Popups and Fade Layer
  33. $('a.close, #fade').live('click', function() { //When clicking on the close or fade layer...
  34. $('#fade , .popup_block').fadeOut(function() {
  35. $('#fade, a.close').remove();
  36. }); //fade them both out
  37.  
  38. return false;
  39. });
  40.  
  41. });


Za pomoc będę niezmiernie wdzięczny.
Za każdą odpowiedź daję "POMÓGŁ" !
kudlatypawelek
Cześć !

Sugeruję użycie którejś z bibliotek do jQuery z kategorii "Modal": http://choosedaily.com/1178/15-jquery-popu...gins-tutorials/. Osobiście stosowałem kiedyś jqModal -> http://dev.iceburg.net/jquery/jqModal/. Graficznie nie powala, ale ma obsługę wielu przydatnych funkcji. Ajaxem musisz przesłać ID do php, żeby wydłubać wcześniej zapisane dane w bazie. Prepopulujesz formę tymi danymi i wysyłasz ją z powrotem do jQuery (to wciąż ajax); następnie renderujesz formę w popupie i znowu ajaxem robisz update. Jeżeli gdzieś się pomyliłem to proszę o korektę biggrin.gif.
peja1990
Znalazłem już inne rozwiązanie bo nie mogłem czekać, ale przyglądnę się temu skryptowi bo zapewne jeszcze nieraz mi się on przyda. Dzięki biggrin.gif Pomógł, poleciał smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.