Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przesłanie zmiennych do pliku
Forum PHP.pl > Forum > PHP
michal_s
Witam. Na swojej stronie chciałbym dopisać możliwość oddawania głosów na materiały tam umieszczone. Tak wyświetlam obrazki do oddawania głosów i ich liczbę (ma to się dziac za pomoca jquery żeby bez odświeżania zmieniała się ilośc głosów):

  1. function punkty() {
  2. $.post('punkty.php', { name: document.form.name.value },
  3. function(output) {
  4. $('#punkty').html(output).show();
  5. });
  6. }


  1. <img src="/plus.png" onclick="get()"/>
  2. <div id="punkty">'.$ocena.'</div>
  3. <img src="/minus.png" onclick="get()"/>


Chciałem wykombinować to jakoś tak, tyle, że teraz nie do końca wiem jak przesłac do pliku punkty.php Id elementu, na który ktoś głosuje i czy głoś był oddawany na + czy - , problemem jest też to, że takich elementów na stronie jest sporo i jak to zrobic, żeby bez tego odświeżania w odpowiednim <div id="punkty"> zmieniała się liczba głosów zaraz po kliknięciu obrazka. Prosiłbym o jakieś pomysły jak to najlepiej rozwiązać i z góry dzięki. Pozdrawiam.

ps. wcześniej przesyłałem na innej stronie to za pomocą forma, dlatego tak jest w function punkty() i dlatego tak jest tutaj chociaz to w tym wypadku głupota i nie wiem czym to zastąpic.
rocktech.pl
Witam.

Jesteś blisko.

Teraz tylko przejrzy sobie dokumentację i przykłady : .each() , selektory, i post (z naciskiem na słowo kluczowe callback).

Pokaż co uda ci się wysmażyć smile.gif
michal_s
Czytam to i czytam i nie za bardzo rozumiem... ;/ Wiem, że w końcu przydałoby się nauczy to jQuery ale coś średnio mi to idzie.
Ale wymyśliłem, ze możnaby to ID i rodzaj oceny przeslac jakos tak:

  1. <img src="/plus.png" onclick="get(id_do_przeslania,plus)"/>
  2. <div id="punkty">'.$ocena.'</div>
  3. <img src="/minus.png" onclick="get(id_do_przeslania,minus)"/>


  1. function punkty(id_do_przeslania, ocena) {
  2. $.post("punkty.php", { id_do_przeslania: id_do_przeslania, ocena: ocena } );
  3. function(output) {
  4. $('#punkty').html(output).show();
  5. });
  6. }


Tylko, że to nie działa... Co żem zrobł źle?
rocktech.pl
1) id elementu musi być unikalne
2) onclick wywołujesz funkcję get a masz funkcję punkty

Co musisz zrobić :

1) obserwować wszystkie zdarzenia click na elementach o klasie .punkty i następne wywołać metodę post która po sukcesie odwoła się do odpowiedniego elementu.


[JAVASCRIPT] pobierz, plaintext
  1. $('.posty').each(function (el) {
  2. el.click(function(){
  3. // do dzieła :)
  4. });
  5. });
[JAVASCRIPT] pobierz, plaintext
michal_s
Z tym: 1) id elementu musi być unikalne
to pewnie chodzi ci o to, że w tej linijce
  1. <div id="punkty">'.$ocena.'</div>
id musi by unikalne. I tutaj się właśnie pojawiają schody bo liczba tych rzeczy do oceniania na stronie jest nieograniczona. użytkownik po obejrzeniu jakiegoś elementu klika i bez przeladowania pokazuje mu się kolejny - tutaj liczba była skończona, ograniczona ilością kategorii i rozwiązałem to robiąc tyle funkcji ile kategorii:) A tutaj jest inaczej, nie idzie tak na około tego zrobic.

a co do :
  1. $('.posty').each(function (el) {
  2. el.click(function(){
  3. // do dzieła :)
  4. });
  5. });


zadam głupie pytania, ale lepiej teraz wyjśc na głupka niż zostac nim do końca życia...
W sumie to, gdzie to ma się znajdowac czy co ma zastąpic...?
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.