• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Okno Popup i link <a href>

Object Storage Arubacloud
0 głosów
1,847 wizyt
pytanie zadane 31 sierpnia 2015 w HTML i CSS przez niezalogowany

Mam taki problem chcę aby po kliknięciu w link otworzyło się okienko popup i wysłało do pasku adresu dane metodą GET

HTML
<a id="popup" href="index.php?wiek=11&wzrost=175">Kliknij mnie</a>

JavaScript (otwieranie popup)

$(document).ready(function(){
	/* ----- Okienko popup ----- */
    // From: http://kursjs.pl/kurs/jquery/jquery_popup.html
    $('#popup').click(function(e)
    {
        //jeżeli popup nie jest widoczny to go pokaż
        if (!$('.popup:visible').length) {
            $('.popup').fadeIn();
        }
        e.preventDefault();
        return false;
    });
 
    //zdarzenie zamknięcia podpinamy pod przycisk close i pod tło popupa
    $('.popup .close, .popup .bg').click(function() {
        $(this).parents('.popup').fadeOut();
    });
});

jednak problem polega na tym że okienką popup wyświetla się pierwsze i link już nie wysyła danych do pasku adresu. ma ktoś jakiś pomysł jak to naprawić ?

2 odpowiedzi

+1 głos
odpowiedź 31 sierpnia 2015 przez Comandeer Guru (601,890 p.)
Polecam poczytać o History API.
0 głosów
odpowiedź 31 sierpnia 2015 przez rafal.budzis Szeryf (85,260 p.)
Te return false to blokuje. Powinieneś usunac return wtedy skrypt nie bedzie blokował akcji które chce wykonac przeglądarka. Lecz gdzy odpali się link przeładuje sie cała strone i okienka nie bedzie.

Gdybyś chciał jedno i drugie musiałbyś poczytać o AJAX i zrobić pobieranie danych z PHP w AJAX return zostawić a link przebudowac na zwykłego div`a byś mógł.
komentarz 1 września 2015 przez niezalogowany
a masz jakiś inny pomysł jak to obejść bez wykorzystania AJAX ogólnie mi chodzi aby w okienku popup morzna by było wykonać skrypt z wykorzystaniem tych zmiennych co są w adresie.
komentarz 1 września 2015 przez rafal.budzis Szeryf (85,260 p.)
Po co ? powiedz dokłądnie co chcesz zrobić daj cały kod i  udowodnie ci ze nie potrzeba ci tego adresu :D
komentarz 1 września 2015 przez niezalogowany
No to ok chcę zrobić tak że z bazy (MySQL) skrypt wyciąga dane i wyrzuca je do tabli na stronie i po kliknięci w dany wiersz tabeli wyświetla się okienko popup z moźliwością edycji tego rekordu i poźniejszego zapisaniu go w bazie.

potrzebujesz jeszcze kodu  ?
komentarz 1 września 2015 przez rafal.budzis Szeryf (85,260 p.)

Chcesz zrobić takiego phpMyAdmina tylko swojego tak ? 

Chcesz bez AJAX to robisz poprostu popup`a tak 

<div class="popup">
  <form method="get" action="/index.php">
    <input type="text" name="wiek">
    <input type="text" name="wzrost">
    <input type="submit" value="Zapisz">
  </form>
</div>

 

komentarz 2 września 2015 przez niezalogowany
no niech będzie ze chcę zrobić takiego phpMyAdmin tylko jak niby to ma działać jak z bazy danych są wyrzucane rekordy do tabeli HTML i żeby wyedytować konkretny rekord trzeba kliknąć w konkretny wiersz tabeli który został wswietlony na stroni i po kliknięci w ten link pojawia się okineko popup ale do paska nie są wysłane zmienne wieć jak ma to działać to co ty napisałeś ?
komentarz 2 września 2015 przez rafal.budzis Szeryf (85,260 p.)
No dopiero w POPup masz formularz który wyśle do linku ...
komentarz 2 września 2015 przez niezalogowany

wow widzę ze się kompletnie nie rozumiemy 

mam coś takiego na stronie i chcę żeby po kliknięciu na np. Wpis2 wyświetlił się popup

w którym bedę mógł edytować dane.

 

tylko problem w tym ze nie wiem jak do popup przesłać dane przez GET

komentarz 2 września 2015 przez Schizohatter Nałogowiec (39,600 p.)
Skoro wykonujesz to wszystko w JavaScripcie, to możesz przecież te dane zwyczajnie pobrać z hiperłącza jako elementu DOM.

Na przykład:

<a href="#otworz_popup" data-popup="identyfikator rekordu">klik</a>

I następnie pobrać w JS atrybut data-popup klikniętego linku. jQ nawet oferuje funkcję data() do takich celów. Czyli byłoby coś w stylu: $(this).data('popup').

Dalej możesz z tym robić wiele rzeczy - za pomocą History API zmienić adres w pasku przeglądarki, wstawić tę wartość jako wartość ukrytego pola w formularzu (który potem zostanie przesłany do backendu, który dzięki temu będzie wiedział, który rekord edytować).
komentarz 3 września 2015 przez rafal.budzis Szeryf (85,260 p.)

+ dla Soanvig nie potrzebujesz tu nic w linku robić a dane w inputach możesz zmienić przez JSa 

Podobne pytania

0 głosów
0 odpowiedzi 131 wizyt
pytanie zadane 25 października 2016 w HTML i CSS przez Jakub Domacki Użytkownik (660 p.)
0 głosów
2 odpowiedzi 390 wizyt
pytanie zadane 15 grudnia 2020 w HTML i CSS przez vingilot85 Obywatel (1,150 p.)
0 głosów
0 odpowiedzi 121 wizyt
pytanie zadane 22 marca 2020 w HTML i CSS przez kubaa322 Użytkownik (710 p.)

92,588 zapytań

141,439 odpowiedzi

319,685 komentarzy

61,974 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...