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

Metoda GET - dwa pliki

VPS Starter Arubacloud
0 głosów
179 wizyt
pytanie zadane 23 kwietnia 2016 w PHP przez niezalogowany
Witam, co mam zrobić aby zmienna 'nazwa', przesyłana metodą GET również została przesłana do pliku: wynik2.php Korzystam z technologii AJAX i niestety nie ma w tych plikach zmiennej 'nazwa'.

<a href="imiona.php?nazwa="kamil">Kliknij</a>

1 odpowiedź

0 głosów
odpowiedź 25 kwietnia 2016 przez xandros Nałogowiec (29,450 p.)

Masz błąd składni. Nie potrzebny quote zaraz po znaku równości.

Lap rozwiązanie:

function sendGetRequest(event) {
    //pobieramy dane z hrefa i je parsujemy regexem
    var href = this.href;
    var regex = /.*imiona\.php\?nazwa=(\w+).*/g;
    var name = regex.exec(href)[1];
    // wysylamy je za pomoca ajaxa, uzyje jquery
    $.get('wynik2.php', {nazwa: name});
}

// uzywamy doma do dodania eventu. element musi posiadac ID uzyte w metodzie 'getElementById'
document.getElementById('a').addEventListener("click", sendGetRequest);

 

1
komentarz 25 kwietnia 2016 przez Comandeer Guru (599,730 p.)

Ło panie… Każdy link implementuje ten sam interfejs, co location i używanie do takich rzeczy regexów to po prostu zbrodnia. 

Wgl jakieś takie to mocno przekombinowane. Do takich rzeczy jest obecnie Beacon API → https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon

komentarz 25 kwietnia 2016 przez xandros Nałogowiec (29,450 p.)

Mógłbyś napisać, jak za pomocą tego interfejsu wyciągasz wartość ze zmiennej 'nazwa'?

Becon API może wydać się lepszy do Jquerowego GETa, ale nie ma supportu dla safari i IE: 
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon#Browser_compatibility

I przepraszam, że się czepiam słownictwa, ale ten błąd za bardzo mnie razi: nie ma takiego skrótu jak 'Wgl'. Ponieważ pisze się rozłącznie 'w' i 'ogóle', czyli 'w ogóle'. Nie bierz tego za bardzo do siebie.

komentarz 25 kwietnia 2016 przez Comandeer Guru (599,730 p.)

Nie bierz tego za bardzo do siebie.

Wgl tego nie biorę do siebie ;) Prawda jest taka, że język potoczny rządzi się swoimi prawami – stąd mamy "wgl" jako bardziej efektywna forma. Podobna sytuacja jest przecież z "nara".

 Mógłbyś napisać, jak za pomocą tego interfejsu wyciągasz wartość ze zmiennej'nazwa'? 

Przez document.querySelector( 'a' ).search dobieram się do całego ?name=kamil i później rozkładam to przy pomocy split – to sposób, który działa wszędzie. Inny sposób, bardziej elegancki, ale znów niedziałający w IE i Safari, to skorzystanie z URLSearchParams, któremu przekazujemy link.search → https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams

Becon API może wydać się lepszy do Jquerowego GETa, ale nie ma supportu dla safari i IE: 

A powyżej jest ten sam kod, który robi to w 4 linijkach tam, gdzie nie ma Beacon API. Wciąż o kilkadziesiąt KB mniej niż jQuery ;) 

komentarz 26 kwietnia 2016 przez xandros Nałogowiec (29,450 p.)

Regex wydawał mi się bardziej elegancki niż splitowanie na & potem na =.

querySelector( 'a' ) wydaje mi się mniej bezpieczny niż dodanie id do odpowiedniego <a> i na tej podstawie szukać elementu. Na stronie może być więcej odnośników.

Co do jQuery, oh well: http://i.stack.imgur.com/ssRUr.gif. 

komentarz 26 kwietnia 2016 przez Comandeer Guru (599,730 p.)

Regex wydawał mi się bardziej elegancki niż splitowanie na & potem na =.

split przecież też bierze regex. Zresztą, jak już musisz regexem, to i tak wygodniej pociąć tylko to, co jest w link.search. No i jeśli mamy dostęp do URLSearchParams, to to się robi samo.

querySelector( 'a' ) wydaje mi się mniej bezpieczny niż dodanie id do odpowiedniego <a> i na tej podstawie szukać elementu. Na stronie może być więcej odnośników.

Akurat to był tylko przykład – link można pobrać dowolnie, w zależności od strony.

Podobne pytania

0 głosów
3 odpowiedzi 346 wizyt
pytanie zadane 14 października 2016 w PHP przez hiper007 Stary wyjadacz (11,270 p.)
0 głosów
2 odpowiedzi 310 wizyt
pytanie zadane 21 września 2017 w PHP przez mi-20 Stary wyjadacz (13,190 p.)
+1 głos
2 odpowiedzi 1,020 wizyt
pytanie zadane 11 września 2017 w JavaScript przez Caesar Początkujący (310 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...