Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP] przerzutka id z JS do zmiennej PHP
Forum PHP.pl > Forum > Przedszkole
Stron: 1, 2
shpaque
w modalu maja byc pobrane dane pliku csv (zmienna $x okresla wiersz z ktorego rekordy maja byc pobrane) i wyswietlone w modalu zarowno jako informacje i pozniej ukryte pola formularza

dlatego po kliknieciu w button musze miec bez przeladowania strony pobrana wartosc id buttona albo jakoas inna tak, zeby modal podczas ladowania wiedzial skad ma pobrac dane (z jakiego wiersza)

pozniej w tresci modala mam tak:

  1. <?php echo "$day[$x] <b>$month[$x]</b> $year[$x] / <b>$citys[$x]</b>"; ?>


moze po prostu przerzucic calego modala do liku ajax.php i go includowac do indexa? ale czy to pozniej bez ladowania strony klikajac w inny button sie zmieni?
nospor
ech....

W skrypcie ajax.php na podstawie tego ID masz pobrac te dane, zwrocic je do skryptu js (json_encode) i w skrypcie js wyswietlic gdzie chcesz...
shpaque
rzecz w tym ze ja nie chce ich w skrypcue wyswietlac tylko w php smile.gif
nospor
toz dopiero mowiles ze chcesz przekazac do modala a modal to chyba js?
shpaque
ale pobiera i wyswietla dane z php
nospor
facepalmxd.gif

Tak, wlasnie, pobieraz z ajax.php. Dopiero co ci to wyjasnialem
viking
@nospor. Szacun. Ja wymiękłem wink.gif
nospor
@viking jestesmy "kwita". Przy innym delikwencie to ja pisalem do ciebie "szacun" biggrin.gif
shpaque
nospor ma juz ze mna takie szlaki przetarte ze nawet bardzo sie jeszcze nie wkurza smile.gif

ok w pliku ajax.php mam zmienna $y ktora pobiera getem id - super - i na tym konczy sie caly plik.

kiedy robie spowrotem w pliku index pod skryptem:

  1. <?php
  2. include('./php/ajax.php');
  3. $x = $y;
  4. ?>


po tym idzie caly modal... ktory przestal sie otwierac po includzie smile.gif

...button nie reaguje smile.gif
nospor
ty nie masz includowac AJAX.php. Ty w ajax.php masz zwrocic wszystkie niezbedne dane jaki modal ma wyswietlic. NIe zwrocic modal, tylko dane dla modala
shpaque
jesss juz teraz to mnie normalnie leb zabolal - teraz juz nic nie wiem... Taka niby prosta sprawa, a tzerba 10 plikow angazowac, 3 kody i tak dalej i tak dalej,

czyli w ajax.php robie cala strone php, a znowu jak ja wyswietle w modalu? przy pazdej zmiennej bede musial scriptowac albo robic funkcje do kazdej zmiennej?questionmark.gif zabije sie
nospor
ja ci nie kaze robic calej strony php. Ja ci tylko mowie, ze ajax.php ma zwrocic dane ktore potrzebujesz. Nie ma potrzeby robic calej strony
viking
W pliku ajax.php czy jak tam go nazwiesz robisz fgetcsv() (przykładowo), obrabiasz plik, szukasz tego id na podstawie $_GET['id'] i zwracasz dane które chciałeś ponownie do JS który to wywołał - json_encode tak jak pkazałem. W konsoli widzisz wartość id zwróconą przez skrypt php. Zrób identycznie. Jak tego nie rozumiesz to naprawdę mamy taki fajny dział ogłoszeń za kasę.
shpaque
no dobra mi byl potrzebny tylko id buttona zeby bez przeladowania strony modal wyswietlil odpowiednie zmienne z pliku csv. ID zostalo zwrocone do skryptu. Tylko dalej jest w skrypcie js - a mi potrzebna zmienna $x ktora dostanie wartosc id buttona - tylko tyle smile.gif

przeciez modal wyswietla dane z php a nie z js - jestem juz tak skolowany ze nie wiem
nospor
to zacznij robic pokolei jak ci mowimy skoro nie ogarniasz calosci.

Najpierw w ajax.php zwroc dane z csv ktore potrzebujesz. potem pojdziemy dalej. Ja z vikingiem na piwo, ty do nauki biggrin.gif
shpaque
czyli dawny plik AJAX.php - zmienilem na MODAL-DANE.php - to mniejsza o to w tym pliku syt wiec wyglada tak:

  1. <?php
  2. header("Content-Type: application/json;charset=utf-8");
  3. $x = json_encode($_GET['id']);
  4.  
  5. $dateins = array();
  6. $dateouts = array();
  7. $titles = array();
  8. $citys = array();
  9. $streets = array();
  10. $placess = array();
  11. $seats = array();
  12. $userss = array();
  13. $rozpoczecies = array();
  14. $zakonczenies = array();
  15. $newdateins = array();
  16. $dzisiaj = strtotime(date('Y-m-d'));
  17. $database = './../db/events.csv';
  18. $items = file($database);
  19.  
  20. foreach($items as $line)
  21. {
  22. list($datein, $dateout, $title, $city, $street, $place, $seat, $users) = explode('|', trim($line));
  23. $rozpoczecie = (strtotime($datein) - $dzisiaj);
  24. $zakonczenie = (strtotime($dateout) - $dzisiaj);
  25. $newdatein = date('Y-m-d', ($dzisiaj + $rozpoczecie));
  26. if ($rozpoczecie != 0)
  27. {
  28. $dateins[] = $datein;
  29. $dateouts[] = $dateout;
  30. $titles[] = $title;
  31. $citys[] = $city;
  32. $streets[] = $street;
  33. $places[] = $place;
  34. $seats[] = $seat;
  35. $userss[] = $users;
  36.  
  37. $rozpoczecies[] = floor($rozpoczecie / 86400);
  38. $zakonczenies[] = floor($zakonczenie / 86400);
  39. $newdateins[] = $newdatein;
  40. }
  41. }
  42.  
  43. array_multisort ($newdateins, SORT_ASC, $dateins, $dateouts, $titles, $citys, $streets, $places, $seats, $userss, $rozpoczecies, $zakonczenies);
  44.  
  45. $months = array('01'=>'STY', '02'=>'LUT', '03'=>'MAR', '04'=>'KWI', '05'=>'MAJ', '06'=>'CZE', '07'=>'LIP', '08'=>'SIE', '09'=>'WRZ', '10'=>'PAŹ', '11'=>'LIS', '12'=>'GRU');
  46. for($i = 0; $i < 3; $i++)
  47. {
  48. list($year[$i], $month[$i], $day[$i]) = split('[/.-]', $dateins[$i]);
  49. $month[$i] = $months[$month[$i]];
  50.  
  51. $dzien[$i] = 'dni';
  52. if ($rozpoczecies[$i] == 1)
  53. {
  54. $dzien[$i] = 'dzień';
  55. }
  56. }
  57.  
  58. $dzien = $day[$x];
  59. $miesiac = $month[$x];
  60. $rok = $year[$x];
  61. $tytul = $titles[$x];
  62. $miasto = $citys[$x];
  63. $adres = $streets[$x];
  64. $obiekt = $placess[$x];
  65. $miejsc = $seats[$x];
  66.  
  67. $uzytkownikow = $users[$x];
  68. if ($uzytkownikow = '')
  69. {
  70. $zajetych = 0;
  71. }
  72. else
  73. {
  74. $zajetych = explode(',', $uzytkownikow + 1);
  75. }
  76. ?>


i teraz jak to wszystko zwrocic i wyswietlac w formie js w modalu w index.php
viking
Nie $x = json_encode($_GET['id']); tylko $x = (int) $_GET['id'];
i na koniec:
  1. echo json_encode([
  2. 'day'=> $day[$x],
  3. ...
  4. ]);


Weź poczytaj jakies podstawy w końcu bo jak zmienną GET odczytać to jednak powinieneś wiedzieć.
nospor
Jak zwrocic dane json spowrotem do kodu js to juz dostales odpowiedzi i przyklad wczesniej. Skup sie.

Zas ten kod co teraz masz to nie ma prawa poprawnie dzialac wiec tez popracuj nad poprawnoscia. ot chociazby przez to
$x = json_encode($_GET['id']);

Ja wiem, mozesz byc zmeczony, ale uwierz, my tez.
shpaque
dobra tam ma byc normalnie jak w php $x = $_GET['id'];

to zapytam tak i prosze pomo mi w tym - w skrypcie mam jakos sobie definiowac kazda zmienna analogicznie - o analogie wlasnie chodzi daj mi jakis kolejny wpis zebym zlapal o co chodzi w analogii pobierania - no i w samym modalu jak to ma byc wyswietlone - w kazdym miejscu zamiast zmiennej php uruchamiac skrypt?
viking
Wyświetl to sobie w konsoli i zobaczysz co dostajesz.

shpaque
nic nie ma w konsoli - jest pusta (wywalilem to co viking pisal o jsonie w ajax.php i wstawilem tak jak radzil nospor tylko "$x=$_GET['id']; a o co chodzi z jsonem i po co to ma byc wyswietlane w logu i jak to pozniej wyswietlic w modalu - jakis document.write?

pewnie chodzi o cos takiego

  1. <script>
  2. function myFunction(id)
  3. {
  4. $.ajax({
  5. type: 'GET',
  6. url: './php/modal-dane.php',
  7. dataType: 'json',
  8. data: {'id': id, 'dzien': dzien, 'miesiac': miesiac... i tak dalej i tak dalej?}
  9. })
  10.  
  11. .done(function(json){
  12. console.log(json);
  13. })
  14. }
  15. </script>


ale wtedy w ajax.php musi byc zmienna get tak?

  1. nie $dzien... tylko $_GET['dzien'] = $day[$x];




wtedy dostaje z konsoli cos takiego:

Uncaught ReferenceError: dzien is not defined
at myFunction (index.php:216)
at HTMLButtonElement.onclick (index.php:143)


i dalej siedze w miejscu - nie ma jakiegos prostego sposobu na to?? ;(
viking
Ma być wyświetlane żebyś w końcu cokolwiek z tego zrozumiał. ma być tak jak ci podałem a nie głupoty z itd.
shpaque
dobra mam tak:

  1. <script>
  2. function myFunction(id)
  3. {
  4. $.ajax({
  5. type: "GET",
  6. url: "./php/modal-dane.php",
  7. dataType: "json",
  8. data: {"id": id},
  9. })
  10.  
  11. .done(function(json){
  12. $("#termin").html("Numer Twojego ID, to: " + id);
  13. })
  14. }
  15. </script>


i id mi pobiera i nawet wyswietla bo to sobie znalazlem w koncu.

teraz mi powiedzcie jak tu w skrypcie mam wyciagnac pozostale zmienne z tamtego pliku (bo id byla wysylana stad, a reszta powinna byc pobrana z pliku php). Juz wiem ze tak nie przejdzie - chyba ze zle robie tutaj i jest taka mozliwosc

  1. data: {"id": id, "dzien": dzien, "rok": rok...},

i jak je okreslic tam w php - tez json encode?

EDIT


no mam teraz tak i pytanie w tresci skryptu

  1. <script>
  2. function myFunction(id)
  3. {
  4. var dzien = jak pobrac z tamtego ponizszego pliku php zmienna $day[$x]?;
  5. var miesiac = jak pobrac z tamtego ponizszego pliku php zmienna $month[$x]?;
  6. var rok = jak pobrac z tamtego ponizszego pliku php zmienna $year[$x]?;
  7.  
  8. $.ajax({
  9. type: "GET",
  10. url: "./php/modal-dane.php",
  11. dataType: "json",
  12. data: {"id": id, "dzien": dzien},
  13. })
  14.  
  15. .done(function(json){
  16. $("#termin").html("Twój ID: " + id + ". Dzień wybrany, to: " + dzien);
  17. })
  18. }
  19. </script>


Cytat(nospor @ 30.11.2017, 13:38:08 ) *
ech....

W skrypcie ajax.php na podstawie tego ID masz pobrac te dane, zwrocic je do skryptu js (json_encode) i w skrypcie js wyswietlic gdzie chcesz...


wlasnie do tego doszedlem smile.gif
tylko jak?

mam zrobic "echo json_encode($day[$x]);" a jak w skrypcie (js) go wyswietlic? tu nie ma geta nie przypisuje zadnej wartosci $_GET['costam']
trzczy
Cytat(shpaque @ 30.11.2017, 23:57:35 ) *
mam zrobic "echo json_encode($day[$x]);" a jak w skrypcie (js) go wyswietlic? tu nie ma geta nie przypisuje zadnej wartosci $_GET['costam']
Tak można
  1. <!-- Jakiś kod html -->
  2. <!-- Jakiś kod html -->
  3. <script>
  4. var valueFromPhp = <?= $phpValue ?>;
  5. alert(valueFromPhp);
  6. </script>
  7. <!-- I ta funkcja js alert pokaże zmienną z php. -->
  8. <!-- Jakiś kod html -->
  9. <!-- Jakiś kod html -->
edit: to dotyczy zmiennej będącej liczbą. Gdyby zmienna była stringiem, to trzeba dodać cudzysłowy
  1. <!-- Jakiś kod html -->
  2. <!-- Jakiś kod html -->
  3. <script>
  4. var valueFromPhp = "<?= $phpValue ?>";
  5. alert(valueFromPhp);
  6. </script>
  7. <!-- I ta funkcja js alert pokaże zmienną z php. -->
  8. <!-- Jakiś kod html -->
  9. <!-- Jakiś kod html -->
nospor
@trzczy a ty go spowrotem w maliny wrzucasz.... kurcze....
trzczy
Cytat(nospor @ 1.12.2017, 09:32:15 ) *
@trzczy a ty go spowrotem w maliny wrzucasz.... kurcze....

A faktycznie. Bo to ma być bez ponownego wczytywania strony. Cofam swój post zatem.
shpaque
stoję w miejscu dalej...

potrzebuje teraz wiedziec jak w skrypcie (ajax) zaladowac zmienne z pliku php tego samego do ktorego wysylalem id, tyle ze tamte zmienne sa juz okreslone
viking
Przeczytasz w końcu trochę tekstu czy będziesz wałkował 100 pytań do nic nie rozumiejąc?
https://prophp.pl/advice/show/20/pierwsze_k..._i_czym_jest%3F
https://prophp.pl/advice/show/17/jak_przygo...dan_xhr_json%3F
shpaque
to juz czytalem wczesniej, ale co mi po tym skoro to taj kakbym czytal ksiazke po arabsku?

czyli zeby wybrac z pliku php musze to miec okreslone tak jak tu z imieniem:

  1. imie: $('input[name="imie"]').val()


a to znaczy ze nie mozna pobrac zmiennej juz okreslonej w php (np $x = wartosc;) tylko musze tam robic niby formularz i odwolywac sie tylko do danych z formularza? To jakis glupi pomysl zeby to byla jedyna opcja ze musze podac jakis id i jego value zamiast normalnie pobrac wartosc wygenerowanej zmiennej...
viking
Forum: Gielda ofert

Zabierasz się za coś czego kompletnie nie rozumiesz i czego nie chcesz się nauczyć. To jedyna opcja IMO.
shpaque
czyli na koncu pod kodem php w liku ze zmiennymi mam miec cos takiego

  1. <form id="formularz" name="formularz" action="./modal-rejestracja.php" method="get">
  2. <input type="text" id="dzien" name="dzien" value="<?php echo $ddzien; ?>" /><br>
  3. <input type="text" id="miesiac" name="miesiac" value="<?php echo $miesiac; ?>" /><br>
  4. <input type="text" id="rok" name="rok" value="<?php echo $rok; ?>" /><br>
  5. <input type="text" id="tytul" name="tytul" value="<?php echo $tytul; ?>" /><br>
  6. <input type="text" id="miasto" name="miasto" value="<?php echo $miasto; ?>" /><br>
  7. <input type="text" id="adres" name="adres" value="<?php echo $adres; ?>" /><br>
  8. <input type="text" id="obiekt" name="obiekt" value="<?php echo $obiekt; ?>" /><br>
  9. <input type="text" id="miejsc" name="miejsc" value="<?php echo $miejsc; ?>" /><br>
  10. <input type="text" id="zajetych" name="zajetych" value="<?php echo $zajetych; ?>" /><br>
  11. <input type="submit" name="submit" value="Submit" />
  12. </form>
  13.  
  14. <script type="text/javascript">
  15. window.onload = function(){
  16. document.forms["formularz"].submit();
  17. }
  18. }



a w skrypcie pobierajacym a drugim pliku:
  1. data: {"id": id, "dzien": $('input[name="dzien"]').val(), "miesiac": $('input[name="miesiac"]').val()},


cos w ten desen?

@viking - o tym ze nie mam zielonego pojecia co robie pisalem 4,5 strony temu. Dlatego prosilem o szybki i latwy sposob na to. Nie ma sensu zebym zlecal to komus kto mi nawali kodow w 5 plikach ktorych i tak nei zrozumiem - a tak krok po kroku moze rozjasni mi sie o co tu chodzi...
viking
Rozjasniamy ci od 4 stron a ty dalej nawet nie potrafisz analagicznych przykładów w żaden sposób zrozumieć. Co więcej oczekujesz? Programowanie to nie jest twoja dziedzina i tyle.
shpaque
@viking - moze nie jest, ale jakos przez te kilka lat nauczylem sie troche php, troche css, troche html - na koniec zostawilem jave, ajax, jquery - bo to zawsze generowaly programy i mi do niczego nei bylo potrzebne - teraz jest, a skoro jestesmy tak blisko to prosze wskaz mi patrzac na ostatni wycinek kodu jaki wyslalem jak to dokonczyc, wiem ze to juz chyba z gorki skoro z moim tepym umyslem doszlismy tak daleko. Rozumiem ze programista ogarnalby to na pierwsze stronie - ja jestem designerem niestety i programowaniem zajmuje sie tylko na wlasne potrzeby kiedy tego wymaga sytuacja...

... zobacz - ty mi wklejasz ajax z post, nospor koryguje na get, ktostam wysyla kod, ktory poznie usuwa bo to jest kod z przeladowaniem strony - jak mozna sie w koncu w tym polapac??

zapytam jeszcze raz:

- jak mam zdefiniowac zmienne w pliku "ajax.php" zeby skrypt js mogl je pobrac (mam tylko id, ktore bylo potrzebne po to, zeby php wiedzial ktore rekordy wyswietlac - jak je teraz pobrac?)
- jak w js wyciagnac te wlasciwe, ktore pozniej wyswietla w modalu (bo to juz wiem jak zrobic - wyswietlic)
- dlaczego skrypt przestaje dzialac kiedy probuje dac wiecej i inne zmienne niz ID (wtedy nawet nie wyswietla id)

@viking - gdybys mi napisal na jednym przykladzie (np pobranie zmiennej $ddzien[$i] z pliku z kodem php - wiedzialbym jak analogicznie zrobic calosc. a my oscylujemy wokol tego ID, ktore jak napisalem wyzej do niczego w modalu mi nie jest potrzebne - a potrzebne tylko w pliku ajax.php do ktorego skrypt js sie odwoluje...

czyli wyslac kliekniete przy pomocy buttona id do pliku ajax.php, ale pobrac juz nie to samo ID ale konkretne zmienne z konkretnymi wartosciami
nospor
Cytat
ale pobrac juz nie to samo ID ale konkretne zmienne z konkretnymi wartosciami
Najlepsze jest to, ze juz odpowiedz dostales dawno temu, gotowy przyklad:


  1. echo json_encode([
  2. 'day'=> $day[$x],
  3. ...
  4. ]);
  5.  


A ty ciagle o to pytasz.
viking
Po tylu latach jednak powinieneś wiedzieć czym się różni get od post. Ja dałem post bo zazwyczaj takie dane w ten sposób się wysyła. Jeśli widzisz że z js przekazujesz post/get jakieś dane a w zmiennej json masz odpowiedź to jaki problem zrozumieć resztę ? Możesz być designerem czy nawet piłkarzem ale mózg masz więc go trochę użyj czasami. Jeszcze nie było aż takiego przypadku na forum.
shpaque
dzieki @nospor @viking wielko o to chodzilo - to teraz pytanie - gdzie zrobilem blad?

w pliku z php mam

  1. ...$ddzien = $day[$x];
  2. $miesiac = $month[$x];
  3. $rok = $year[$x];
  4. $tytul = $titles[$x];
  5. $miasto = $citys[$x];
  6. $adres = $streets[$x];
  7. $obiekt = $placess[$x];
  8. $miejsc = $seats[$x];
  9.  
  10. $uzytkownikow = $users[$x];
  11. if ($uzytkownikow = '')
  12. {
  13. $zajetych = 0;
  14. }
  15. else
  16. {
  17. $zajetych = explode(',', $uzytkownikow + 1);
  18. }
  19.  
  20. echo json_encode(['dzien' => $ddzien, 'miesiac' => $miesiac, 'rok' => $rok, 'tytul' => $tytul, 'miasto' => $miasto, 'adres' => $adres, 'obiekt' => $obiekt, 'miejsc' => $miejsc, 'zajetych' => $zajetych]);
  21. ?>


a w skrypcie js w tamtym pliku mam:

  1. function myFunction(id)
  2. {
  3. $.ajax({
  4. type: "GET",
  5. url: "./php/modal-dane.php",
  6. dataType: "json",
  7. data: {"id": id, "dzien": dzien, "miesiac": miesiac, "rok": rok, "tytul": tytul, "miasto": miasto, "adres": adres, "obiekt": obiekt, "miejsc": miejsc, "zajetych": zajetych}
  8. })
  9.  
  10. .done(function(json){
  11. $("#termin").html("Twój ID: " + id + ". Dzień wybrany, to: " + dzien + " " + miesiac);
  12. })
  13. }
  14. </script>



konsola mi wywala:

Uncaught ReferenceError: dzien is not defined
at myFunction (index.php:216)
at HTMLButtonElement.onclick (index.php:143)

EDIT

to dlatego ze oczywiscie byl blad w przykladzie podanym przez Was - w js w data najwpier musi byc zmienna a pozniej wartosc a nie odwrotnie. Teraz jest tak jak byc powinno ale konsowa wyaala:

jquery-2.1.0.min.js:4 GET http://www.uniwersytet-rodzica.pl/php/moda...jetych=zajetych 500 (Internal Server Error)

................... zastanawia mnie jeszcze jedno - z tego linku ktory sobie wygenerowal to on wysyla get do pliku modal-data.php a nie pobiera z niego...?
viking
To ty sobie sam wymyśliłeś że w data ma być cokolwiek więcej niż id. A nie ma być.
shpaque
ok to juz nie ma. jest tak:

  1. <script>
  2. function myFunction(id)
  3. {
  4. $.ajax({
  5. type: "GET",
  6. url: "./php/modal-dane.php",
  7. dataType: "json",
  8. data: {"id": id}
  9. })
  10.  
  11. .done(function(json){
  12. $("#termin").html("Twój ID: " + id + ". Dzień wybrany, to: " + dzien + " " + miesiac);
  13. })
  14. }
  15. </script>


i tu chyba jest wszystko ok, teraz php:

  1. <?php
  2. header("Content-Type: application/json;charset=utf-8");
  3. echo json_encode($_GET['id']);
  4. $x = $_GET['id'];
  5.  
  6. ...
  7.  
  8. $ddzien = $day[$x];
  9. $miesiac = $month[$x];
  10. $rok = $year[$x];
  11. $tytul = $titles[$x];
  12. $miasto = $citys[$x];
  13. $adres = $streets[$x];
  14. $obiekt = $placess[$x];
  15. $miejsc = $seats[$x];
  16.  
  17. $uzytkownikow = $users[$x];
  18. if ($uzytkownikow = '')
  19. {
  20. $zajetych = 0;
  21. }
  22. else
  23. {
  24. $zajetych = explode(',', $uzytkownikow + 1);
  25. }
  26.  
  27. echo json_encode(['dzien' => $ddzien, 'miesiac' => $miesiac, 'rok' => $rok, 'tytul' => $tytul, 'miasto' => $miasto, 'adres' => $adres, 'obiekt' => $obiekt, 'miejsc' => $miejsc, 'zajetych' => $zajetych]);
  28. ?>


konsola daje:

jquery-2.1.0.min.js:4 GET http://www.uniwersytet-rodzica.pl/php/modal-dane.php?id=0 500 (Internal Server Error)
viking
Co według Ciebie robi 3 linia? Wynik jest prawie dobry oprócz tego 0. No i oczywiście w done to jakaś abstrakcja. Po to było console.log żebyś wiedział co zwracasz.
shpaque
chodzi ci o $x? pobiera numer ID (0, 1 lub 2) ktory słuzy pozniej do wyswietlenia rekordow z pliku csv. zreszta masz calosc pliku modal-dane.php

  1. <?php
  2. header("Content-Type: application/json;charset=utf-8");
  3. echo json_encode($_GET['id']);
  4. $x = $_GET['id'];
  5.  
  6. $dateins = array();
  7. $dateouts = array();
  8. $titles = array();
  9. $citys = array();
  10. $streets = array();
  11. $placess = array();
  12. $seats = array();
  13. $userss = array();
  14. $rozpoczecies = array();
  15. $zakonczenies = array();
  16. $newdateins = array();
  17. $dzisiaj = strtotime(date('Y-m-d'));
  18. $database = './../db/events.csv';
  19. $items = file($database);
  20.  
  21. foreach($items as $line)
  22. {
  23. list($datein, $dateout, $title, $city, $street, $place, $seat, $users) = explode('|', trim($line));
  24. $rozpoczecie = (strtotime($datein) - $dzisiaj);
  25. $zakonczenie = (strtotime($dateout) - $dzisiaj);
  26. $newdatein = date('Y-m-d', ($dzisiaj + $rozpoczecie));
  27. if ($rozpoczecie != 0)
  28. {
  29. $dateins[] = $datein;
  30. $dateouts[] = $dateout;
  31. $titles[] = $title;
  32. $citys[] = $city;
  33. $streets[] = $street;
  34. $places[] = $place;
  35. $seats[] = $seat;
  36. $userss[] = $users;
  37.  
  38. $rozpoczecies[] = floor($rozpoczecie / 86400);
  39. $zakonczenies[] = floor($zakonczenie / 86400);
  40. $newdateins[] = $newdatein;
  41. }
  42. }
  43.  
  44. array_multisort ($newdateins, SORT_ASC, $dateins, $dateouts, $titles, $citys, $streets, $places, $seats, $userss, $rozpoczecies, $zakonczenies);
  45.  
  46. $months = array('01'=>'STY', '02'=>'LUT', '03'=>'MAR', '04'=>'KWI', '05'=>'MAJ', '06'=>'CZE', '07'=>'LIP', '08'=>'SIE', '09'=>'WRZ', '10'=>'PAŹ', '11'=>'LIS', '12'=>'GRU');
  47. for($i = 0; $i < 3; $i++)
  48. {
  49. list($year[$i], $month[$i], $day[$i]) = split('[/.-]', $dateins[$i]);
  50. $month[$i] = $months[$month[$i]];
  51.  
  52. $dzien[$i] = 'dni';
  53. if ($rozpoczecies[$i] == 1)
  54. {
  55. $dzien[$i] = 'dzień';
  56. }
  57. }
  58.  
  59. $ddzien = $day[$x];
  60. $miesiac = $month[$x];
  61. $rok = $year[$x];
  62. $tytul = $titles[$x];
  63. $miasto = $citys[$x];
  64. $adres = $streets[$x];
  65. $obiekt = $placess[$x];
  66. $miejsc = $seats[$x];
  67.  
  68. $uzytkownikow = $users[$x];
  69. if ($uzytkownikow = '')
  70. {
  71. $zajetych = 0;
  72. }
  73. else
  74. {
  75. $zajetych = explode(',', $uzytkownikow + 1);
  76. }
  77.  
  78. $tablica = array('dzien' => $ddzien, 'miesiac' => $miesiac, 'rok' => $rok, 'tytul' => $tytul, 'miasto' => $miasto, 'adres' => $adres, 'obiekt' => $obiekt, 'miejsc' => $miejsc, 'zajetych' => $zajetych);
  79. echo json_encode($tablica);
  80. ?>


w done o to mi chodzilo zeby w modalu wyswietlil mi te zmienne ktore mial pobrac z php - zobacz jak to dziala w realu: http://www.uniwersytet-rodzica.pl/index.php

...od tego sie zaczelo - sadzilem ze jakos latwo mozna przypisac w locie po kliknieciu buttonem jego id, zeby w modalu nie leciec js'em i ajaxem tylko php i wyswietlic np zmienna $day[id buttona ktory kliknalem];
viking
To inaczej . po co robisz tam to echo? Jaki to ma cel oprócz tego że psuje wynikowy format json?
shpaque
bo jak go nie ma, to wywala mi:

index.php:220 Uncaught ReferenceError: dzien is not defined
at Object.<anonymous> (index.php:220)
at j (jquery-2.1.0.min.js:2)
at Object.fireWith [as resolveWith] (jquery-2.1.0.min.js:2)
at x (jquery-2.1.0.min.js:4)
at XMLHttpRequest.<anonymous> (jquery-2.1.0.min.js:4)

sadzilem ze o to chodzi zeby zmienne z php wrocily jsonem do pliku w ktorym jest skrypt js ajax - w tym samym jest modal i buttony
viking
I słusznie wywala bo widzisz gdziekolwiek zmienną dzień po stronie js? Jest json.dzien co byś wiedział gdybyś zmienna json łaskawie wyświetlił.
shpaque
...a po polsku? smile.gif

jak dam "json.dzien" zamist "dzien" to mi w wyniku wyswietla: Twój ID: 2. Dzień wybrany, to: undefined - wiec i json.dzien tez jest undefined

sadzilem ze caly czas wyswietla mi zmienna json
viking
Z tego co pod linkiem widzę to całą zwracaną tablicę usunąłeś zostawiając pierwsze echo.
shpaque
czyli ma byc tak:

  1. <?php
  2. header("Content-Type: application/json;charset=utf-8");
  3. json_encode($_GET['id']);
  4. $x = $_GET['id'];
  5. ...
  6. $tablica = array('dzien' => 'wtorek', 'miesiac' => 'luty', 'rok' => $rok, 'tytul' => $tytul, 'miasto' => $miasto, 'adres' => $adres, 'obiekt' => $obiekt, 'miejsc' => $miejsc, 'zajetych' => $zajetych);
  7. json_encode($tablica);
  8. ?>


a tu:

  1. .done(function(json){
  2.  
  3. var dzien = jak tu pobrac?;
  4. var miesiac = jak tu pobrac?;
  5.  
  6. console.log(json);
viking
Ma być tak jak było wcześniej ale bez linii3. Wyżej tez napisałem jak masz to pobrać. Zacznij w końcu czytać i analizować co się do ciebie pisze.
shpaque
i BAAARDZO dziękuję już wszystko działa 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.