Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [jquery][cookies][php] Button, który ma disabled w nieskończoność, Prośba o pomoc w przypisaniu cookies do buttona
rokasny
post
Post #1





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

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


  1. <script type="text/javascript">
  2. function setCookie(key, value) {
  3. var expires = new Date();
  4. expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000));
  5. document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
  6. }
  7.  
  8. function getCookie(key) {
  9. var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
  10. return keyValue ? keyValue[2] : null;
  11. }
  12.  
  13. if(getCookie(button_cookie) === 1){
  14. $('button').attr("disabled",true);
  15. };
  16. $(document).ready(function(){
  17. $('button').click(function(){
  18.  
  19. $.ajax ({
  20. type: "POST",
  21. url: "buton.php",
  22. data:{obliczalg: $(this).val()},
  23. success: function(msg)
  24. {
  25.  
  26. alert( "Obliczono:"+msg);
  27. $('.poka').slideToggle("slide", true);
  28. setCookie(button_cookie,1);
  29.  
  30. $(this).attr("disabled",true);
  31. },
  32. error: function (XMLHttpRequest, textStatus,
  33. errorThrown)
  34. {
  35. alert('Error submitting request.');
  36. }
  37. });
  38.  
  39. });
  40.  
  41. });
  42. </script>

button :
  1. <button value='<?php echo $row[0] ?>' type='submit' name='obliczalg' class="ajax" )">Oblicz</button>


Witam wszystkich, proszę o podpowiedzi - co jest nie tak z kodem. Bez cookies wykonuje pięknie zadaną mu funkcje, jednak z cookies nie odpowiada po kliknięciu w ogóle. Próbuje zrobić tak, żeby po kliknięciu button stał się disabled i był tak w nieskończoność (nawet po odświeżeniu strony).
Go to the top of the page
+Quote Post
com
post
Post #2





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


class="ajax" )" a co to?
Go to the top of the page
+Quote Post
rokasny
post
Post #3





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

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


css ale nieistotny tutaj
Go to the top of the page
+Quote Post
com
post
Post #4





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


istotny bo składnia przycisku jest nie prawidłowa wiec nie będzie działać...

ponadto czym jest button_cookie?
Go to the top of the page
+Quote Post
rokasny
post
Post #5





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

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


hm no to powinna być zmienna do czegoś
Go to the top of the page
+Quote Post
com
post
Post #6





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


no zgadza sie tylko w twoim kodzie jest ona nie określona wgl masz kilka błędów w składni js wiec dlatego Ci to nie działa (IMG:style_emoticons/default/smile.gif)

Zajrzyj do konsoli popraw je a potem jak dalej nie będzie działać to wrzuć poprawiony kod (IMG:style_emoticons/default/smile.gif)

Ten post edytował com 1.12.2013, 20:43:49
Go to the top of the page
+Quote Post
rokasny
post
Post #7





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

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


no właśnie, a czy mogę prosić o podpowiedzi co poprawić, robię jednorazowy projekt na studiach i za bardzo nie ogarniałem js wcześniej:(
Go to the top of the page
+Quote Post
com
post
Post #8





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


no dałem podpowiedź uruchom firebug/kosole błędów i sprawdź gdzie się pojawiły błędy i popraw (IMG:style_emoticons/default/wink.gif) Nie jestem jasnowidze a nie mam całego twojego kodu (IMG:style_emoticons/default/smile.gif)

Ten post edytował com 1.12.2013, 21:18:44
Go to the top of the page
+Quote Post
rokasny
post
Post #9





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

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


W pierwszej kolejności (póki co jedyne):
  1. Uncaught ReferenceError: button_cookie is not defined
Go to the top of the page
+Quote Post
com
post
Post #10





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


to już Ci powiedziałem po powierzchownej analizie http://www.w3schools.com/js/js_cookies.asp (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
rokasny
post
Post #11





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

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


staram się to ogarnąć, ale nie mam lekko, pomożecie poprawić mi ten mój kod? button_cookie to musi być nasz guzik, tak? mamy set i get cookie dobrze?

edit: Takbedzie wygladalo setCookie??

  1. function setCookie(ajax, $(this).val(), expires, path, domain, secure){
  2. document.cookie=ajax+'='+escape($(this).val()||'')+
  3. (expires?';expires='+new Date(+new Date()+expires*864e5).toGMTString():'')+
  4. (path?';path='+path:'')+
  5. (domain?';domain='+domain:'')+
  6. (secure?';secure':'');
  7. }
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




(IMG:style_emoticons/default/facepalmxd.gif)
Projekt na studiach..... to moze jakies podstawy wpierw by poznac, a potem brac sie za pisanie??

setCookie(button_cookie,1);
Krzyczy ci blad ze nie ma button_cookie, bo to ma byc tekst, czyli nazwa ciasteczka. A nazwy panie kolego, bierze sie w apostrofy :/

setCookie('button_cookie',1);

Analogicznie przy getCoockie..



Zas twoja nowa setCookie co podales w poprzednim poscie jest zla. W deklaracji parametrow funkcji nie wstawia sie dynamicznie wyliczanych wartosci.
Dostales linka gdzie masz podane jak setCookie ma wygladac. No nawet skopiowac na studiach juz nie uczą(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif)
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
rokasny
post
Post #13





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

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


  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3. function setCookie(key, value) {
  4. var expires = new Date();
  5. expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000));
  6. document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
  7. }
  8.  
  9. function getCookie(key) {
  10. var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
  11. return keyValue ? keyValue[2] : null;
  12. }
  13.  
  14. if(getCookie('button_cookie') === 1){
  15. $('button').attr("disabled",true);
  16. };
  17. $('button').click(function(){
  18.  
  19. $.ajax ({
  20. type: "POST",
  21. url: "buton.php",
  22. data:{obliczalg: $(this).val()},
  23. success: function(msg)
  24. {
  25.  
  26. alert( "Obliczono:"+msg);
  27. $('.poka').slideToggle("slide", true);
  28. setCookie('button_cookie',1);
  29.  
  30. },
  31. error: function (XMLHttpRequest, textStatus,
  32. errorThrown)
  33. {
  34. alert('Error submitting request.');
  35. }
  36. });
  37. $(this).attr("disabled",true);
  38.  
  39. });
  40.  
  41. });
  42. </script>

button:
  1. <button value='<?php echo $row[0] ?>' type='submit' name='obliczalg' class="ajax" )">Oblicz MRP</button>


Co bym musiał dalej pozmieniać w tym kodzie? (IMG:style_emoticons/default/sad.gif)

Ten post edytował rokasny 2.12.2013, 14:16:40
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No ale co ci znowu nie dziala?

ps: nie === 1 a == 1
Go to the top of the page
+Quote Post
rokasny
post
Post #15





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

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


  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3. function setCookie(key, value) {
  4. var expires = new Date();
  5. expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000));
  6. document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
  7. }
  8.  
  9. function getCookie(key) {
  10. var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
  11. return keyValue ? keyValue[2] : null;
  12. }
  13.  
  14. if(getCookie('button_cookie') == 1){
  15. $('button').attr("disabled",true);
  16. };
  17. $('button').click(function(){
  18.  
  19. $.ajax ({
  20. type: "POST",
  21. url: "buton.php",
  22. data:{obliczalg: $(this).val()},
  23. success: function(msg)
  24. {
  25.  
  26. alert( "Obliczono:"+msg);
  27. setCookie('button_cookie',1);
  28.  
  29. },
  30. error: function (XMLHttpRequest, textStatus,
  31. errorThrown)
  32. {
  33. alert('Error submitting request.');
  34. }
  35. });
  36. $(this).attr("disabled",true);
  37. $('.poka').slideToggle("slide", true);
  38.  
  39.  
  40. });
  41.  
  42. });
  43. </script>

Z tym ==1 działa, dziękuje ogromnie! ale mam kilka wierszy z tym buttonem (który ma inny value o odpowiednim dla każdego wiersza ID) i w innej zakładce dodaje kolejne wiersze (więc nowe wiersze mają button dalej nieaktywny), które już nie chce aby były disabled do momentu aż je klikne

Ten post edytował rokasny 2.12.2013, 14:36:04
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to dla kazdego buttona przypisuj ciasteczko o innej nazwie a nie takie samo dla wszystkich jak teraz
Go to the top of the page
+Quote Post
werdan
post
Post #17





Grupa: Zarejestrowani
Postów: 354
Pomógł: 100
Dołączył: 14.11.2013
Skąd: Płock

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


>ale mam kilka wierszy z tym buttonem (który ma inny value o odpowiednim dla każdego wiersza ID) i w innej zakładce dodaje kolejne wiersze (więc nowe wiersze mają button dalej nieaktywny), które już nie chce aby były disabled do momentu aż je klikne

  1.  
  2. $('button').attr("disabled",true);
  3.  



W kodzie powyzej blokujesz wszystkie buttony. Musisz jakos jes rozroznic, np. id i po kliknieciu zapisywac ich id do cookie, potem odczytywac i blokowac.
Go to the top of the page
+Quote Post
rokasny
post
Post #18





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

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


jak to id konkretnego buttona do niego dopisać? (IMG:style_emoticons/default/ohmy.gif) (IMG:style_emoticons/default/co_jest.gif)
moze zamiast 'button' dać button value (to jakby nie było jest rozne id) tylko jak?

Ten post edytował rokasny 2.12.2013, 14:44:32
Go to the top of the page
+Quote Post
markuz
post
Post #19





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


  1. <button id="1"></button>

Kod
$('button#1')


Ten post edytował markuz 2.12.2013, 14:56:14
Go to the top of the page
+Quote Post
werdan
post
Post #20





Grupa: Zarejestrowani
Postów: 354
Pomógł: 100
Dołączył: 14.11.2013
Skąd: Płock

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


Pisane bez testowania. Jak nie działa, wklejaj błędy z konsoli.
Kazdy button musi miec swoj wlasny unkalny id.

  1. <script type="text/javascript">
  2. $(document).ready(function() {
  3. function setCookie(key, value) {
  4. var expires = new Date();
  5. expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000));
  6. document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
  7. }
  8.  
  9. function getCookie(key) {
  10. var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
  11. return keyValue ? keyValue[2] : null;
  12. }
  13.  
  14. $('button').each(function(i, el) {
  15. if (getCookie('bc' + $(this).attr("id"))) {
  16. $(this).attr("disabled", true);
  17. }
  18. });
  19.  
  20. $('button').click(function() {
  21. var id = $(this).attr('id');
  22. $.ajax({
  23. type: "POST",
  24. url: "buton.php",
  25. data: {obliczalg: $(this).val()},
  26. success: function(msg) {
  27. alert("Obliczono:" + msg);
  28. setCookie('bc' + id, 1);
  29. },
  30. error: function(XMLHttpRequest, textStatus, errorThrown) {
  31. alert('Error submitting request.');
  32. }
  33. });
  34. $(this).attr("disabled", true);
  35. $('.poka').slideToggle("slide", true);
  36. });
  37. });


Ten post edytował werdan 2.12.2013, 14:59:02
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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.08.2025 - 01:49