Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][AJAX] skrypt nie pobiera zmiennej z GET
Forum PHP.pl > Forum > Przedszkole
Terrorizer
Mam plik /user.php z taką zawartością:
  1. <?php
  2. echo $_GET['user'];
  3. ?>

Wpisując w wyszukiwarce np: /user.php?user=Kasia
echo niczego nie wyświetla. Co jest z tym nie tak?

Właściwie to posiadam skrypt ajax który powinien wysłać tam zmienną poprzez GET jednak coś jest nie halo.
Tak przy okazji zastanawiam się czy ten href nie psuje wszystkiego. Usiłuję utworzyć link do profilu danego użytkownika

EDIT tutaj jest reszta kodu:
  1. echo 'Dodał:<a href="user.php?user=' . $numphotos["user"] . '" " onclick="prof(\''.$profuser.'\')"> '.$numphotos["user"].'</a>';
  2.  
  3. <script>
  4. function prof(profuser){
  5. var xmlhttp=new window.XMLHttpRequest();
  6. xmlhttp.open("GET", "user.php?user=" + profuser, true);
  7. xmlhttp.send();
  8. }
  9. </script>
adrianpl20
Jak ma coś wyświetlić Ci ten plik skoro go nie otworzyles w przegladarce? W ten sposób i tak nawet gdybyś był na tej podstronie w przeglądarce to i tak ci nic nie wyświetli bo jak? Wyświetlasz php'em a php to strona serwera wiec "z dupy" Ci nie wyświetli tego w przeglądarce i jeszcze w jakimś miejscu dla Cb najlepszym. Użyj do wyświetlania JS - i tak nie rozumiem co Ty chcesz tutaj wyświetlać - bez sensu to dla mnie jest patrząc na podany kod.
Terrorizer
Przekazuję ajaxem zmienną do innego pliku, i chcę wyświetlić zawartość zmiennej, co w tym dziwnego i "z dupy" ?
Ale posiadam inny podobny skrypt który działa... nie dostrzegam różnic pomiędzy nimi.
Czy to nie wygląda jednakowo?:
  1. echo '<img src="gfx/guzik tak.png" alt="guzik" onclick="ajaxvotelike('.$photoid.')">';
  2.  
  3. <script>
  4. function ajaxvotelike(photoid) {
  5. var xmlhttp=new window.XMLHttpRequest();
  6. xmlhttp.open("GET", "ajaxvotelike.php?id=" + photoid, true);
  7. xmlhttp.send();
  8. }
  9. </script>

  1. <?php
  2. echo $_GET['id'];
  3. ?>
Pyton_000
@adrianpl20 z d... to jest Twoja wypowiedź.

Do autora. Wysyłając request musisz jeszcze zadbać o odebranie response.
Coś w ten deseń:
Kod
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
        alert(xhr.responseText);
    }
}
xhr.open('GET', 'http://example.com', true);
xhr.send(null);


Zainteresju się też $.get #.post. $.ajax z jQuery. Oszczędzisz masę czasu i nerwów.
irekk
Masz
  1. echo 'Dodał:<a href="user.php?user=' . $numphotos["user"] . '" " onclick="prof(\''.$profuser.'\')"> '.$numphotos["user"].'</a>';


nie powinno być:
  1. echo 'Dodał:<a href="user.php?user=' . $numphotos["user"] . '" " onclick="prof(\'' . $numphotos["user"] . '\')"> '.$numphotos["user"].'</a>';

?

Podejrzyj narzędziem firebugopodobnym jaki idzie request i co jest w odpowiedzi.
nospor
Zacznijmy od tego, ze to jest link, ktory na dodatek ma podpiety HREF, wiec klikajac w niego, przenosi nas pod to co jest w HREF a nie pod onclicka.
Kolejną sprawą jest blad cudzyslowiow, " " ktore leżą obok siebie bez sensu. Jeden zamykam poprzedni, a co robi drugi? Drugi jest bledem
Terrorizer
Chyba narobiłem trochę zamieszania publikując za dużo kodu
Rzecz jest w tym ,że plik php posiadający skrypt
echo $_GET['costam'];
Nie wyświetla nic nawet gdy ręcznie do linku dodam ?costam=przykład

Ajax sam w sobie jest ok, gdyż raczej firebug nigdzie się nie zatrzymuje.

Cudzysłowia poprawiłem, natomiast jeśli chodzi o href, chciałem jakoś przekierować się na stronę user która odbiera te ajaxowe dane.
To chyba jednak zły pomysł co tongue.gif?
Turson
Raportowanie błędów włączone całkowicie?
Zamiast robić echo, używaj var_dump($_GET)
Terrorizer
Błędy wyświetlam za pomocą:
  1. ini_set('display_errors','1');

Celowo podałem w moim drugim poście przykład drugiego skryptu o tej samej budowie który już działa.
Ten jest niby niemal taki sam, a coś nie trybi.
Fakt ,że tamten jest czystym skryptem w pliku, a to co teraz nie chce mi działać jest zamieszczone w środku body na stronie. Nie wiem czy to ma jakieś znaczenie.

EDIT: Zresetowałem komputer, przesłałem pliki ponownie i wszystko działa teraz. WTF?!
Tak czy inaczej dzięki za zainteresowanie moim problemem tongue.gif
Turson
Masz jednocześnie href i onclick, a jedno wyklucza drugie. Albo usuń href albo dodaj return false w js
Terrorizer
Generalnie wszystko już działa. Zastanawia mnie tylko jedna rzecz.
Znajduję się na stronie main.php skąd wysyłam zmienną do user.php
Czy mam teraz jakąś możliwość przenieść się na stronę user.php która będzie znała wartość tej zmiennej?
Mam wrażenie ,że robię niepotrzebną głupotę z tym ajaxem, chyba wystarczy zwyczajnie dodać do hrefu wartość zmiennej i bez funkcji onclick się obejdzie co haha.gif?
Chyba kupię sobie książki o js, bo to co zaczynam wymyślać przechodzi ludzkie pojęcie biggrin.gif
Turson
No jasne, że prościej dodać wartość do linku w postaci user.php?profuser=$profuser
Terrorizer
Miałem na myśli dodanie do hrefu wartość zmiennej za pomocą złącznika tzn kropki.
php od razu sprawdzi zawartość zmiennej i ją dopisze
To chyba będzie git biggrin.gif
Turson
O to też mi chodziło wstawiając zmienną do linku
Terrorizer
Myślałem ,że po prostu mi dokuczasz haha biggrin.gif
Wszystko jest na dobrej drodze, dzięki!
adrianpl20
Przepraszam za błąd, nie doczytałem całego pierwszego postu i sądziłem, że z innej podstrony chce autor wywołać tę funkcję.
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.