Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak przekazac zmienna z js do php?
Forum PHP.pl > Forum > Przedszkole
misty
hej, jak moge przekazac zmienna z js do php? prosze o nieodpowiadanie typu 'ajax+cos tam', bo malo mi to mowi, nie znam ajaxa. moglby mi ktos podac jakis prosty przyklad?

pzdr,
misty
nospor
po pierwsze: nie ten dzial
po drugie:
Cytat
prosze o nieodpowiadanie typu 'ajax+cos tam',
No niestety taka jest odpowiedź. Jak nie znasz ajax to warto by przeczytac jakis kurs. To jest proste tylko trzeba chciec. Jak nie chcesz to zapraszam na gielde ofert.

po trzecie: moze jednak opisz problem dokladniej, zobrazuj kodem, to moze powiemy coś wiecej.
misty
tzn. moze byc ajax, tylko ze ja ajaxa nie znam-a potrzebuje to miec teraz, dlatego spytalam o przyklad.
chodzi o cos w stylu-mam funkcje js:

  1.  
  2. function mojaFunkcjaWJs(zmienna){
  3. </script>
  4. <?php
  5.  
  6. //tutaj chce miec dostep do zmienna
  7. ?>
  8. }


moglbys mi podac jakis przyklad? kopie juz od godziny :/ a ajaxa nie ogarne w 5min :/
nospor
js dziala po stronie klienta
php dziala po stronie serwera

to są dwie rozne rzeczy i js nie komunikuje sie od tak sobie z php poprzez otworzenie kodu <?php

ajax wysyla żądanie do serwera i moze cos mu przekazac. Jesli o to tobie chodzi to zainteresuj sie chociazby jquery - bardzo ladnie obsluguje ajax przy twoim minimalnym wysilku.
http://api.jquery.com/jQuery.get/
masz tam przyklady uzycia

Cytat
-a potrzebuje to miec teraz
Nie nasz wina ze obudziles sie z ręką w nocniku.
misty
sluchaj, a znalazlam taki przyklad:
w JS:

document.cookie = "tresc =" +tresc+"; expires="+data+";";

w PHP:

$_COOKIE['tresc']

ale jak tak probuje to dostaje ze

Undefined index: tresc

w linjce przy phpie. czemu to nie dziala?
nospor
nie ustawilo ci się ciasteczko w js. Przeladowales po tym strone?
misty
nie chce przeladowywac strony. nie da sie tego zrobic bez przeladowania?
nospor
Nie. juz ci to wyjasnilem w poprzednim poscie.
js - po stronie klienta
php - po stronie serwera
dwa rozne swiaty
misty
dobra.

a przeladowanie strony? probuje (w js) poprzez location.reload() i wcale sie nie przeladowuje.

document.cookie = "tresc =" +userId+"; expires="+data+";";
location.reload();
nospor
Kod
document.location.href=document.location.href;

i usun spacje
nie: "tresc ="
a: "tresc="
misty
kurde, to nie dziala!! patrz, mam tak, ze jak klikam na ikone to wywoluje mi sie funkcja w js. tam ma sie ustawic to ciasteczko, przeladowac strone i odczytac ciasteczko w php:

  1. <script type="text/javascript">
  2.  
  3. function blockUser(userId){
  4. var tresc = userId;
  5. document.cookie="tresc="+tresc+";";
  6. document.location.href=document.location.href;
  7. </script>
  8. <?php
  9. $cos = $_COOKIE['tresc'];
  10. echo "TUU";
  11. echo $cos;
  12.  
  13. ?>
  14.  
  15. <script type="text/javascript">
  16. }
  17. </script>


no i nadal dostaje ze 'undefinied index tresc'
nospor
bo masz bledy js.... funkcji nie zamknales
  1. <script type="text/javascript">
  2. function blockUser(userId){
  3. var tresc = userId;
  4. document.cookie="tresc="+tresc+";";
  5. document.location.href=document.location.href;
  6.  
  7. }
  8. </script>
  9. <a href="#" onclick="blockUser(5);">blokuj</a>
  10. <?php
  11. echo $_COOKIE['tresc'];
  12.  
  13. ?>

dziala.
misty
nie dziala. i nie moge miec kolejnego przycisku. zobacz-ja mam sobie jakas tam ikone, jak na nia klikam to na onClick wykonuje sie wlasnie ta funkcja. ma ustawic ciasteczko i sama z siebie sie przeladowac, wiec nie moge miec kolejnego przycisku. poza tym nadal dostaje 'unknow index tresc' ://
nospor
ale jestes oporny na wiedze....
dalem ci przyklad ktory dziala. Sprawdziles przyklad dokladnie bez zadnych swoich zmianek? Napewno nie...

Mowie ci, ze twoj kod ma niezakmniętą funkcję, brakuje w odpowiednim miejscu }
Jedyne co musis zrobic to:
odpalic moj kod i zobaczyc ze dziala
poprawic swoj wzorujac sie na moim. Nie kaze ci nic dokladac......

no i nie mozesz wyswietlac tekstu php w srodku funkcji js. Rozwalasz tym rowniez caly kod js.

a zreszta... tak ma wygladac twoj kod:
  1. <script type="text/javascript">
  2.  
  3. function blockUser(userId){
  4. var tresc = userId;
  5. document.cookie="tresc="+tresc+";";
  6. document.location.href=document.location.href;
  7. }
  8. </script>
  9. <?php
  10. $cos = $_COOKIE['tresc'];
  11. echo "TUU";
  12. echo $cos;
  13.  
  14. ?>


misty
zobacz, to wyglada tak, ze mam tablice, tam uzytkownikow, przy kazdym mam ikone blokuj-klikam na nia i wlasnie ma sie strona przeladowac. wlasnie to przeladowanie strony nie dziala.
nospor
No przeciez ci to juz wyjasnilem. Przeczytaj uwaznie jeszcze raz post wyzej.
misty
to moze inaczej. jestem w tej funkcji JS. ustawiam ciasteczko, przeladuje. jak z poziomu JS wtedy 'wejsc' w funkcje php i zrobic update na bazie? rozumiesz? bo jestem w JS a po ustawieniu tego id ma od razu mi sie zrobic update na bazie.
nospor
komplikujesz sobie zycie...
Skoro ma to sie stac, gdy klikniej na ikonke obok usera, to weź zrob normalnego linka. Link ten przekieruje sie na akcje (do php) ktora to zrobi to co chcesz
Link np. bedzie takiej postac: http://twojastrona.pl/blokuj.php?iduser=5
a w php
  1. if (!empty($_GET['iduser'])){
  2. //rob se co chcesz
  3. }

To tylko przyklad.
misty
no wlasnie ma zostac na tej samej stronie. stad te problemy, bo tak to tez bym zrobila przekierowanie na inna strone i getem przekazala sad.gif
nospor
oj... to byl tylko przyklad. Przeciez mozesz zrobic przekierowanie na tę samą strone. To przeciez nie problem. Szukasz dziury w calym smile.gif
misty
a moge w onClicku przekierowac sie na ta sama strone (czyli przeladowac ja) tylko dodac zmienna GET??
nospor
mozesz. pisalem o tym post wczesniej smile.gif

edit down: i wlasnie stracilem do ciebie cierpliwosc. W taki sposob sie nie dogadamy. znikam z tego tematu. smile.gif
misty
no przeciez nie dziala to cale reload. bez sensu
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.