Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ajax]Proszę o naprowadzenie..., żale js`owego nooba
solarV
post 6.04.2008, 23:26:01
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 6.04.2008

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


Witam.
Jako że z natury jestem uparty i nie lobię prosić o pomoc ciężko mi się pisze tego post'a :/
Przejdźmy do sedna sprawy. Otóż nigdy nie byłem zwolennikiem używania na stronach javascritu i ajax'a. Jednak aby podnieś komfort funkcjonowania pewnego serwisu będę musiał po to sięgnąć, chyba że ktoś zna jakiś fajny sposób na umieszczenie player'a mp3,tak aby nie przeładowywał sie ze strona (nie odświeżający sie div? ;]),(iframe,okienko popup) odpadają.
Wracając do tematu jeśli miałbym tą stronę budować w ajax'e totalnie nie wiem jak się za to zabrać... Proszę o poradę jakich frameworków użyć, bawiłem sie mint/adv-ajaxem, udaje mi się z pola input wywołać skrypt tak żeby przeszukał bazę mp3 bez przeładowywania strony, ale nie mam pojęcia w jaki sposób zabrać się za np takie coś:

Kod
<a href="podglad/mp3/'.$result[2][$i2] . '/'.$result[3][$i2] . '">'.$result[4][$i2].'</a><br />


Będę wdzięczny za jakąkolwiek pomoc.
Z góry dziękuje.
Go to the top of the page
+Quote Post
lord_t
post 7.04.2008, 08:31:28
Post #2





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

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


Frameworki:
jQuery
MooTools

Sam ajax:
AdvAJAX < tego używałem, raczej nic trudnego:)


Nie wiem czy zrozumiałem o co Ci chodzi z tym <a href...., ale chyba o to żeby dodać linki do zwróconych wyników. Jesli tak to:
1.Masz gdzies na stronie np.
  1. <div id='jakies_id'><div>

2.Strona którą wywołuje ajax generuje potrzebne <a href..></a>
3.(Na przykładzie AdvAJAX:) W onSucces robisz wpisanie tego co zwróciła strona do diva:
  1. document.getElementById('jakies_id').innerHTML = obj.responseText;


--------------------
Go to the top of the page
+Quote Post
solarV
post 7.04.2008, 10:04:29
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 6.04.2008

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


To akurat udało mi się rozkminic. Chodzi o to że np mam już bez przeładowywania zwrócony wynik wyszukiwania, wszystko ładne, umiem to uzyskać jak idzie przez input'a, ale nie mam pojęcia jak skonstruować link i funkcje ajax zeby tez tak to działało.
Nie wiem czy dobrze wytłumaczyłem. Łopatologicznie to cała strona ma działa bez przeładowywania, pojawia mi sie link skonstruowany w ten sposób:
Kod
<a href="szukaj/'.$exp[0].'/1/">'.$exp[0].'</a>

Jak to zrobić? Z czym to się je? Domyślam się ze w href muszę da odnośnik do funkcji js, a więc jak przekazać zmienne?
Jeśli nie macie do mnie siły to odpuście smile.gif
Go to the top of the page
+Quote Post
lord_t
post 7.04.2008, 14:32:38
Post #4





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

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


SolarV, weź głęboki oddech, zwolnij;) i teraz jeszcze raz napisz (ew. przeedytuj powyższego posta). Co ty chcesz uzyskać. Pisz tak jakbyś tłumaczył idiocie;) Pełnymi zdaniami. To Ci pomożemy;) W tej chwili nie umiem dojrzeć celu.


--------------------
Go to the top of the page
+Quote Post
solarV
post 7.04.2008, 17:39:46
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 6.04.2008

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


Kod
<script language="JavaScript" type="text/javascript" src="advajax.js"></script>

<script language="JavaScript" type="text/javascript">
page = parseInt(document.getElementById("page").value);
advAJAX.get({
   url: "http://localhost/test/page.php?p="+page,
   onSuccess : function(obj) { dodajHTML(obj.responseText);}
});
</script>

</head>
<body>    

# <A href="page.php?p=1">jeden</A> # <A href="page.php?p=2">dwa</A> # <A href="page.php?p=3">trzy</A> # <A href="page.php?p=3&co=dupa">trzy z dupa!!!!</A>
<hr>
<?php

if($_GET['p']==1){
    echo'JEDENJEDENJEDENJEDEN';
}
if($_GET['p']==2){
    echo'DWADWADWADWADWADWA';
}
if($_GET['p']==3){
    echo'TRZY TRZYTRZYTRZYTRZY';
}
if($_GET['p']==3 && $_GET['co']==dupa){
    echo'TRZY TRZYTRZYTRZYTRZY DUPA DUPADUPA';
}
?>
<hr>
<div id="test" style="border:1px; width:200px; height:200px; background-color:red;"></div>


pisane na szybko, funcka advajax z jakiegos forum.
Teraz jak zrobi tak żeby wykonywał się ten skrypt bez przeładowywania strony? Inaczej juz chyba nie umie tego zobrazowac. Nie bijcie :/
Go to the top of the page
+Quote Post
lord_t
post 7.04.2008, 23:17:05
Post #6





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

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


No to łap wodzu:

plik page.php:
  1. <script language="JavaScript" type="text/javascript" src="advajax.js"></script>
  2.  
  3. <script language="JavaScript" type="text/javascript">
  4. //page = parseInt(document.getElementById("page").value);
  5.  
  6. function zmien(nr)
  7. {
  8. advAJAX.get({
  9. url: "page2.php?p="+nr,//+"&co="+param,
  10. onSuccess : function(obj)
  11. { document.getElementById("tu").innerHTML=obj.responseText;}
  12. });
  13.  
  14. }
  15.  
  16. </head>
  17. <body>
  18.  
  19. # <div onclick='zmien(1)'>jeden</div>
  20. # <div onclick='zmien(2)'>dwa</div>
  21. # <div onclick='zmien(3)'>trzy</div>
  22. <hr>
  23.  
  24. <div id='tu'></div>


plik page2.php
  1. <?php
  2.  if($_GET['p']==1){
  3. echo'JEDENJEDENJEDENJEDEN';
  4. }
  5. if($_GET['p']==2){
  6. echo'DWADWADWADWADWADWA';
  7. }
  8. if($_GET['p']==3){
  9. echo'TRZY TRZYTRZYTRZYTRZY';
  10. }
  11. ?>


Uwagi:
1. Divy nie są w lini tak jak linki, nie są także podkreślone, ale to można rozwiązać stylami css.
2. Przypadku z d(cenzura)ą nie chciało mi się dopisać do funkcji zmien().
Możliwe rozwiązania:
a. Zrobić 2 funkcje => pierwsza z 1 argumentem, druga z dwoma.
b. (zalecana opcja) Zrobić funkcję przyjmującą 2 argumenty, i sprawdzać drugi: jeśli np. jest równy "x" to nie dodajemy go do url w funkcji ajaxa.

Pozdr.

Ten post edytował lord_t 7.04.2008, 23:18:40


--------------------
Go to the top of the page
+Quote Post
solarV
post 9.04.2008, 11:57:37
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 6.04.2008

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


Wielkie dzięki za pomoc, jestem naprawdę wdzięczny, naprowadziłeś mnie na dobry trop, w gruncie rzeczy chyba zacznę porządnie uczyć się js'a żeby nie zadawać takich idiotycznych pytań~~

Ja zrobiłem to tak:
Kod
<script language="JavaScript" type="text/javascript">
advAJAX.setDefaultParameters({
    timeout : 90000,
    onTimeout : function() { document.getElementById('okienko2').innerHTML = "<b>POLACZENIE PRZEKROCZYLO CZAS</b>"; },
    retry: 9,
    retryDelay: 2000,
    onRetry : function() { document.getElementById('okienko2').innerHTML = "<b>PONAWIANIE POLACZENIA Z BAZA</b>"; },
    onRetryDelay : function() { document.getElementById('okienko2').innerHTML = "<b>OCZEKIWANIE NA NOWE POLACZENIE</b>"; },
    onLoading : function() { document.getElementById('okienko2').innerHTML = "<b>DAJTA CHWILE, PICUJE!!!</b>"; },
    onError : function(obj) { alert("Error: " + obj.status); }
});
function $(id){
return document.getElementById(id);
}
function os(co, ppidPagera){
advAJAX.get({
    url: "akcje.php",
    parameters : {
        "co" : co,
        "ppidPagera" : ppidPagera
    },
    onSuccess : function(obj) { $("okienko2").innerHTML = obj.responseText; },
});
}

function szukaj(){
advAJAX.assign($("szukaj"), {
    onSuccess : function(obj) { $("okienko2").innerHTML = obj.responseText; }}
    );
}
</script>


przykladowa budowa linku:
Kod
'<a title="'.$title.'" href="'.$link.'" onclick="os(\''.$szukane.'\',\''.$page.'\');return false;">'.$text.'</a>'


wszystko na advAJAX, mam nadzieje ze przyda się przyszłym pokoleniom biggrin.gif
Go to the top of the page
+Quote Post
ensei
post 30.04.2008, 20:41:47
Post #8





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 30.04.2008

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


Cytat(lord_t @ 8.04.2008, 00:17:05 ) *
No to łap wodzu:

plik page.php:
  1. <script language="JavaScript" type="text/javascript" src="advajax.js"></script>
  2.  
  3. <script language="JavaScript" type="text/javascript">
  4. //page = parseInt(document.getElementById("page").value);
  5.  
  6. function zmien(nr)
  7. {
  8. advAJAX.get({
  9. url: "page2.php?p="+nr,//+"&co="+param,
  10. onSuccess : function(obj)
  11. { document.getElementById("tu").innerHTML=obj.responseText;}
  12. });
  13.  
  14. }
  15.  
  16. </head>
  17. <body>
  18.  
  19. # <div onclick='zmien(1)'>jeden</div>
  20. # <div onclick='zmien(2)'>dwa</div>
  21. # <div onclick='zmien(3)'>trzy</div>
  22. <hr>
  23.  
  24. <div id='tu'></div>


plik page2.php
  1. <?php
  2. if($_GET['p']==1){
  3. echo'JEDENJEDENJEDENJEDEN';
  4. }
  5. if($_GET['p']==2){
  6. echo'DWADWADWADWADWADWA';
  7. }
  8. if($_GET['p']==3){
  9. echo'TRZY TRZYTRZYTRZYTRZY';
  10. }
  11. ?>


Uwagi:
1. Divy nie są w lini tak jak linki, nie są także podkreślone, ale to można rozwiązać stylami css.
2. Przypadku z d(cenzura)ą nie chciało mi się dopisać do funkcji zmien().
Możliwe rozwiązania:
a. Zrobić 2 funkcje => pierwsza z 1 argumentem, druga z dwoma.
b. (zalecana opcja) Zrobić funkcję przyjmującą 2 argumenty, i sprawdzać drugi: jeśli np. jest równy "x" to nie dodajemy go do url w funkcji ajaxa.

Pozdr.


Witam.
Nie chcę zaczynać nowego tematu, więc piszę tutaj.
Jak zrobić z tego skrypciku, żeby nie musiał odwoływać się do page2.php, tylko do page.php - operowałby ciągle na jednym pliku.
Go to the top of the page
+Quote Post
lord_t
post 30.04.2008, 21:47:45
Post #9





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

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


  1. <?php
  2. if(isset($_GET['p']) && $_GET['p']!="")
  3. {
  4. if($_GET['p']==1){
  5. echo'JEDENJEDENJEDENJEDEN';
  6. }
  7. if($_GET['p']==2){
  8. echo'DWADWADWADWADWADWA';
  9. }
  10. if($_GET['p']==3){
  11. echo'TRZY TRZYTRZYTRZYTRZY';
  12. }
  13. }
  14. else
  15. {
  16. ?>
  17.  
  18.  
  19. <script language="JavaScript" type="text/javascript" src="advajax.js"></script>
  20.  
  21. <script language="JavaScript" type="text/javascript">
  22. //page = parseInt(document.getElementById("page").value);
  23.  
  24. function zmien(nr)
  25. {
  26. advAJAX.get({
  27. url: "page2.php?p="+nr,//+"&co="+param,
  28. onSuccess : function(obj)
  29. { document.getElementById("tu").innerHTML=obj.responseText;}
  30. });
  31.  
  32. }
  33. </script>
  34.  
  35. </head>
  36. <body>
  37.  
  38. # <div onclick='zmien(1)'>jeden</div>
  39. # <div onclick='zmien(2)'>dwa</div>
  40. # <div onclick='zmien(3)'>trzy</div>
  41. <hr>
  42.  
  43. <div id='tu'></div>
  44.  
  45. <? }//else ?>


Komentarz:
1.Powinno zadziałać bez tych brakujących tagów (<html> itp.), ale proponuję dodać;)
2.Pisane z palca.


--------------------
Go to the top of the page
+Quote Post
ensei
post 30.04.2008, 22:52:30
Post #10





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 30.04.2008

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


Piękne dzięki.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 12.07.2025 - 16:54