Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Ajax] Skrypt zwiększający rekord o jeden
Falcon2
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 6.02.2009

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


Witam

Chciałbym się zapytać o mały skrypt ajax. Chodzi mi o system głosowania (coś jak ma skrypt katalogu freeglobes albo wykop) - mianowicie np. po lewej stronie widnieje button "oddaj głos" a nad nim ilość głosów, po kliknięciu głos ten zwiększa się o +1 bez odświeżania strony - moglibyście mnie nakierować gdzie znajdę jakieś informacje do napisania takiego modułu ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
erix
post
Post #2





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




Wystarczy Ci pierwszy lepszy kurs JavaScript + AJAX.

To naprawdę nie jest trudne - wysyłasz żądanie z odpowiednim ID pozycji, na którą głosujesz, a serwer zwraca bieżącą notę.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
daniel1302
post
Post #3





Grupa: Zarejestrowani
Postów: 602
Pomógł: 30
Dołączył: 1.08.2007
Skąd: Nowy Sącz

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


Mi przypadł do gustu advAjax, do takich rzeczy najlepiej się nadaje. Lecz trzeba znać podstawy JS a jak chcesz uzywac na wieksza skale ajaxa i JS to weź sobie jQuery
Go to the top of the page
+Quote Post
Falcon2
post
Post #4





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 6.02.2009

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


już sobie poradziłem, ale nie do końca... mam problem z elementami eval i wyświetleniem zmodyfikowanych danych

Ten post edytował Falcon2 11.03.2009, 22:56:44
Go to the top of the page
+Quote Post
erix
post
Post #5





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




Kurs JavaScript w łapkę - łączenie stringów.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Falcon2
post
Post #6





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 6.02.2009

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


@erix: szukałem i nie znalazłem, a w ogóle chyba od tego jest forum żeby pytać ludzi, którzy znają się na rzeczy?

wzorowane na: http://webhosting.pl/Jak.stworzyc.przycisk...wania.w.Ajaksie

kod JS wygląda tak:
Kod
var xmlHttp;

function ajaxInit() {
    
    try  {
          // Firefox, Opera 8.0+, Safari
          xmlHttp=new XMLHttpRequest();
    }
    catch (e) {
          // Internet Explorer
          try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch (e) {
            try {
              xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
           }
           catch (e) {
              alert("Twoja przeglądarka nie obsługuje AJAXa!");
              return false;
           }
        }
    }
}

function zablokuj(id) {
    eval("document.images['button_plus_"+id+"'].src = 'http://localhost/ajaxvote/imgs/vote_plus_unactive.gif'");
       eval("document.images['button_minus_"+id+"'].src = 'http://localhost/ajaxvote/imgs/vote_minus_unactive.gif'");
       eval("document.images['button_minus_"+id+"'].onclick = 'void()'");
    eval("document.images['button_plus_"+id+"'].onclick = 'void()'");

}

function vote(id, typ) {
    ajaxInit();
    xmlHttp.onreadystatechange=function() {    
        if(xmlHttp.readyState==4)
            {
            a = xmlHttp.responseText;
            if (a != "false") {
                zablokuj(id);
                eval("document.forms[0].ocenaw"+id+".value = a");
            }
        }
    }    
    if (typ == 'plus')
    {
        xmlHttp.open("GET","http://localhost/ajaxvote/ajvote.php?plus=1&k="+id,true);
    }    
    else
    {
        xmlHttp.open("GET","http://localhost/ajaxvote/ajvote.php?minus=1&k="+id,true);
    }
    xmlHttp.send(null);
}


a button z wynikiem:
  1. <?php
  2. $cont.= '<img class="guziki" id="button_plus_'.$row['id'].'" src="imgs/vote_plus_active.gif" alt="głosuj na plus"
  3. onclick="vote('.$row['id'].', 'plus')"> <img class="guziki" id="button_minus_'.$row['id'].'" src="imgs/vote_minus_active.gif" alt="głosuj na nuys"
  4. onclick="vote('.$row['id'].', 'minus')"> (<input type="text" class="ocena" "name="ocenaw'.$row['id'].'" value="'.$row['vote'].'" size="1">';
  5. ?>


po przerobieniu do mojego cms- a nie działa value dla input (
Kod
eval("document.forms[0].ocenaw"+id+".value = a");
)wyświetlającego wynik (za to zamiana obrazka głosowania funkcjonuje jak należy) dlatego chciałbym się zapytać czy da się jakoś przerobić ten skrypt, że zamiast <input> będzie można wstawić tekst np. w div albo span?

Ten post edytował Falcon2 11.03.2009, 23:07:16
Go to the top of the page
+Quote Post
erix
post
Post #7





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




Cytat
@erix: szukałem i nie znalazłem, a w ogóle chyba od tego jest forum żeby pytać ludzi, którzy znają się na rzeczy?

Jakoś ja znalazłem: http://webmade.org/kursy-online/zmienne-ja...-javascript.php

Forum jest po to, aby naprowadzać, a nie szurnąć gotowca. A żadna sztuka go Ci dać, jak zechcesz jeszcze coś do niego dodać i znowu będziesz pisał o tym samym, a samodzielnie nie zrobisz.

Aby móc rozmawiać w danym języku, musisz poznać słówka. Bez podstaw naprawdę nie mamy o czym rozmawiać...


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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 Aktualny czas: 22.08.2025 - 04:05