Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Jquery odnośnik następny poprzedni
arzach
post
Post #1





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

Ostrzeżenie: (0%)
-----


Witam
Próbuje zrobić w jquery odnośniki następny poprzedni które będą w ajax pobierany newsy. Na chwile obecną zrobiłem tyle.

  1. <script src="http://code.jquery.com/jquery-latest.js"></script>
  2.  
  3.  
  4. $(document).ready(function(){
  5. start(1);
  6.  
  7. $("#nastepny").click(function(){
  8. start(2);
  9. });
  10. $("#poprzedni").click(function(){
  11. start(3);
  12. });
  13.  
  14.  
  15. });
  16.  
  17. function start(id)
  18. {
  19. $.ajax({
  20. type: "GET",
  21. url: "odbierz.php",
  22. data: { name: id },
  23. pobierz: function (XMLHttpRequest) {
  24. $("#wynik").html("Trwa pobieranie newsa.");
  25. },
  26. success: function(msg) {
  27. $("#wynik").html(msg);
  28. },
  29. error: function (XMLHttpRequest, textStatus, errorThrown) {
  30. $("#wynik").html('Przepraszamy, news nie zostal pobrany.');
  31. }
  32. });
  33. }
  34.  
  35. </head>
  36. <p id="nastepny">Nastepny</p><p id="poprzedni">Poprzedni</p>
  37. <div id="wynik"></div>
  38.  
  39. </body>
  40. </html>


I nie wiem jak pobrać id i przekazać do plik odbierz.php za pomocą tych linków. Może ktoś pomóc jak mam pobrać id news i wysłać je ajaxem.

Ten post edytował arzach 14.07.2009, 11:05:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
thomas2411
post
Post #2





Grupa: Zarejestrowani
Postów: 108
Pomógł: 7
Dołączył: 15.05.2005
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


Kod
(...)
$.ajax({
type: "GET",
url: "odbierz.php",
data: { 'id=' + id},
pobierz: function (XMLHttpRequest) {
(...)
Go to the top of the page
+Quote Post
arzach
post
Post #3





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

Ostrzeżenie: (0%)
-----


Chyba mnie nie zrozumiałeś o co mi chodzi.



Przy staracie strony pobieram ostatnio dodany news.

I tu działa ładnie news się wyświetla.



News ten oczywiście ma id które nie wiem jak mam w Jquery pobrać i potem znowu wysłać do pliku odbierz.php który pobierz poprzedni news lub następny za pomocą tych odnośników.

To co ty podałes to ja wiem. Tylko nie wiem jak za pomocą tej zmiennej id mam przekazać id aktualnie wyswietlanego newsa.

Ten post edytował arzach 14.07.2009, 11:22:48
Go to the top of the page
+Quote Post
Skie
post
Post #4





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

Ostrzeżenie: (0%)
-----


W pliku news.php, który generuje Ci aktualnie wyświetlanego newsa (pobiera z bazy, czy jak Ty tam to robisz), wyświetl sobie jego ID w taki sposób byś mógł go pobrać JSem, np dodaj do skryptu:

  1. <?php
  2. print("<div id=current_news_ID style=display:none;>".$ID_newsa."</div>");
  3. ?>


Co w kodzie wynikowym da Ci po prostu np:

  1. <div id=current_news_ID style=display:none;>1</div>


Potem w JSie, zrobisz sobie tak:

Kod
currentID = parseInt($D('current_news_ID').innerHTML);


i już masz pobrane ID obecnego newsa ;-)
oczywiście to pobieranie musiałbyś zrobić w zdarzeniu onSuccess AJAX'a, żeby wszystko ładnie chodziło.

Powodzenia!
Go to the top of the page
+Quote Post
thomas2411
post
Post #5





Grupa: Zarejestrowani
Postów: 108
Pomógł: 7
Dołączył: 15.05.2005
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


To nie dość, że zamotałeś pytanie, to jeszcze w kodzie masz id wpisane na sztywno.

Zrób tak, że linki następny poprzedni niech mają jako id, id newsa. W onclick wstaw wywołanie z danego linka opdowiednią funkcję z parametrem this.id. Wtedy będziesz miał ten id danego newsa.
Jak pobierasz dane do wyniku dla danego newsa o zadanym id i wyświetlasz to gdzieś na stronie, to masz w ajax funkcję:
Kod
.success: function(msg) {
$("#wynik").html(msg);
},


To dodaj do tego success kod, który dany id z parametru funkcji wstawi jako id danego linka czy gdzie tam to potrzebujesz.
Go to the top of the page
+Quote Post
arzach
post
Post #6





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

Ostrzeżenie: (0%)
-----


Dzięki zrobiłem tak
  1. <script src="http://code.jquery.com/jquery-latest.js"></script>
  2.  
  3.  
  4. $(document).ready(function(){
  5. start(1, 1);
  6. $("#nastepny").click(function(){
  7. var id = $("#news_id").html();
  8. var akcja = 'nastepwny';
  9. start(id, akcja);
  10. }
  11. );
  12. $("#poprzedni").click(function(){
  13. var id = $("#news_id").html();
  14. var akcja = 'poprzedni';
  15. start(id, akcja);
  16. }
  17. );
  18. });
  19.  
  20. function start(id , akcja)
  21. {
  22. $.ajax({
  23. type: "GET",
  24. url: "odb.php",
  25. data: {
  26. name: id,
  27. akcja: akcja
  28. },
  29. pobierz: function (XMLHttpRequest) {
  30. $("#wynik").html("Trwa pobieranie newsa.");
  31. },
  32. success: function(msg) {
  33. $("#wynik").html(msg);
  34. },
  35. error: function (XMLHttpRequest, textStatus, errorThrown) {
  36. $("#wynik").html('Przepraszamy, news nie zostal pobrany.');
  37. }
  38. });
  39. }
  40.  
  41. </head>
  42. <p id="nastepny">Nastepny</p><p id="poprzedni">Poprzedni</p>
  43. <div id="wynik"></div>
  44.  
  45. </body>
  46. </html>

w pliku odbierz.php dałem ukryty div z id a potem za pomocą
  1. var id = $("#news_id").html();

odczytałem wartość diva.

I teraz mam pytanie jak mam zrobić zęby id było pobierane tylko wtedy gdy żądnie ajax zwróci true

Chodzi o ten kawałek kodu
  1. $(document).ready(function(){
  2. start(1, 1);
  3. $("#nastepny").click(function(){
  4. var id = $("#news_id").html();
  5. var akcja = 'nastepwny';
  6. start(id, akcja);
  7. }
  8. );
  9. $("#poprzedni").click(function(){
  10. var id = $("#news_id").html();
  11. var akcja = 'poprzedni';
  12. start(id, akcja);
  13. }
  14. );
  15. });


?

Ten post edytował arzach 14.07.2009, 12:44:32
Go to the top of the page
+Quote Post
Skie
post
Post #7





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

Ostrzeżenie: (0%)
-----


Ten kawałek kodu daj żeby się wykonywał na AJAXowe onSuccess();

Kod
var id = $("#news_id").html();


Przed rozpoczęciem wysłania zapytania daj

Kod
id = false;


(tak żeby przy każdym zapytaniu zmienna id była "resetowana")

(przy czym id musi być zmienną globalną, no chyba, że te wszystkie funkcje opakujesz w klasę - byleby funkcja onClick miała dostęp do tej zmiennej)

a potem w onClick:

Kod
if (id) {
   var akcja = 'poprzedni';
   start(id, akcja);
}


Ja bym tak to zrobił, ale będziesz musiał nanieść dużo poprawek do swojego kodu.
Go to the top of the page
+Quote Post
arzach
post
Post #8





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

Ostrzeżenie: (0%)
-----


Zrobiłem tak i zmiennej id w ogóle nie pobiera.
  1. <script src="http://code.jquery.com/jquery-latest.js"></script>
  2.  
  3. var id = '';
  4.  
  5. $(document).ready(function(){
  6. start(1, 1);
  7.  
  8. $("#klik").click(function () {
  9. alert(id);
  10. });
  11.  
  12. });
  13.  
  14. function start(id , akcja)
  15. {
  16. $.ajax({
  17. type: "GET",
  18. url: "od.php",
  19. data: {
  20. name: id,
  21. akcja: akcja
  22. },
  23. pobierz: function (XMLHttpRequest) {
  24. var id = false;
  25. $("#wynik").html("Trwa pobieranie newsa.");
  26. },
  27. success: function(msg) {
  28. $("#wynik").html(msg);
  29. var id = $("#news_id").html();
  30. },
  31. error: function (XMLHttpRequest, textStatus, errorThrown) {
  32. $("#wynik").html('Przepraszamy, news nie zostal pobrany.');
  33. }
  34. });
  35. }
  36.  
  37. </head>
  38. <p id="nastepny">Nastepny</p><p id="poprzedni">Poprzedni</p>
  39. <div id="wynik"></div>
  40. <p id="klik">Pokaz id</p>
  41. </body>
  42. </html>


Wie ktoś jak temu zaradzić ?

Ten post edytował arzach 14.07.2009, 17:58:50
Go to the top of the page
+Quote Post
erix
post
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
wogole

Czy to jest jakieś nowoodkryte plemię?

Sprawdź sobie konsolę błędów.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 16:59