Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery][php]
Forum PHP.pl > Forum > Przedszkole
rokasny
Jquery: jak przypisać funkcję z pliku nizej buton.php ze zmienną
w buttonie poniżej row[0] którą ściąga post
poniższy kod nie daje rady.. Proszę o wskazówki/pomoc
Plik buton.php
  1. if (isset($_POST['oblicz']))
  2. {
  3. echo "<br/>";
  4. $boom = 'boom.php';
  5. include($boom);
  6. oblicz_alg($_POST['oblicz']);
  7. };
  1. $(document).ready(function(){
  2. $('button').click(function(){
  3. $.ajax ({
  4. type: "POST",
  5. url: "buton.php",
  6. success: function(msg)
  7. {
  8. alert( "Obliczono:" +msg);
  9. },
  10. error: function (XMLHttpRequest, textStatus,
  11. errorThrown)
  12. {
  13. alert('Error submitting request.');
  14. }
  15. });
  16. $(this).attr("disabled",true);
  17.  
  18. });
  19. });
  1. <button value='<?php echo $row[0] ?>' type='submit'
  2. name='oblicz' class="ajax">Oblicz</button>

Dodatkowo czy jest możliwe aby disabled po wywołaniu funkcji był
stały (nawet po odświeżeniu/restarcie strony)?
werdan
  1. if (isset($_POST['oblicz']))
  2. {
  3. $boom = 'boom.php';
  4. include($boom);
  5. print oblicz_alg($_POST['oblicz']);
  6. };


Wywaliłem to echo, bo nie wiem po co. Jesli funkcja oblicz_alg() cos zwraca to dodaj print. Jesli od razu drukuje to wywal.

Ten disabled mozesz zrobić na cookie albo sesji.
rokasny
Zwraca - jest to funkcja function oblicz_alg($id_zam) a $id_zam to w pliku głównym z butona pobrana POST'em value='<?php echo $row[0] ?>' bez jquery działa, niestety z jquery które mam wynikiem jest tylko pusty alert 'Obliczono:' i disabled buttona. z printem dalej nic
werdan
Ok juz teraz kumam.

  1. $(document).ready(function(){
  2. $('button').click(function(){
  3. $.ajax ({
  4. type: "POST",
  5. url: "buton.php",
  6. data:{oblicz: $(this).val()}
  7. success: function(msg)
  8. {
  9. alert( "Obliczono:" +msg);
  10. },
  11. error: function (XMLHttpRequest, textStatus,
  12. errorThrown)
  13. {
  14. alert('Error submitting request.');
  15. }
  16. });
  17. $(this).attr("disabled",true);
  18.  
  19. });
  20. });


Musisz POSTem przesłać dane w tym przypadku value kliknietego buttona, czyli $(this).val()



Na samej górze pliku buton.php daj var_dump($_POST);
Zobacz co Ci przyszło POSTem i jak jeszcze nie tak, to sobie możesz dopasowac, ale wyglada mi OK.
rokasny
zwraca mi msg: array(1) {['oblicz_alg']=>string(1) '7' } wartość id, która się wyświetla jest poprawna dla mojego wiersza i buttona, tylko nie chce wykonać funkcji php, którą mam w boom.php . Wyrzuca błędy przy próbie wykonania $result mysql query(zapytanie): Warning mysql query access denied for user@localhost using password no, potem mysql fetch array itd. Próbowałem dorzucić tam łączenie z bazą, próbowałem samo łączenie z buton.php, index.php, boom.php kombinuje ale nic nie pomaga

EDIT:Dziękuje smile.gifexclamation.gif! przejście do nowej linii w alert: \n
EDIT2:

Pomożecie z podpięciem cookie pod to jquery, bardzo proszę, jak się za to zabrać - aby disabled było wieczne(po odświeżaniu stron)?
  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3. $('button').click(function(){
  4. $.ajax ({
  5. type: "POST",
  6. url: "buton.php",
  7. data:{obliczmrp: $(this).val()},
  8. success: function(msg)
  9. {
  10. alert( "Obliczono:"+msg);
  11. $('.poka').slideToggle("slide", true);
  12. },
  13. error: function (XMLHttpRequest, textStatus,
  14. errorThrown)
  15. {
  16. alert('Error submitting request.');
  17. }
  18. });
  19. $(this).attr("disabled",true);
  20.  
  21. });
  22. });
  23. </script>
werdan
  1.  
  2. <script type="text/javascript">
  3. $(document).ready(function(){
  4.  
  5.  
  6. function setCookie(key, value) {
  7. var expires = new Date();
  8. expires.setTime(expires.getTime() + (1 * 24 * 60 * 60 * 1000));
  9. document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
  10. }
  11.  
  12. function getCookie(key) {
  13. var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
  14. return keyValue ? keyValue[2] : null;
  15. }
  16.  
  17. if(getCookie(button_cookie) === 1){
  18. $('button').attr("disabled",true);
  19. };
  20.  
  21.  
  22. $('button').click(function(){
  23. $.ajax ({
  24. type: "POST",
  25. url: "buton.php",
  26. data:{obliczmrp: $(this).val()},
  27. success: function(msg)
  28. {
  29. alert( "Obliczono:"+msg);
  30. $('.poka').slideToggle("slide", true);
  31. $(this).attr("disabled",true);
  32. setCookie(button_cookie,1);
  33. },
  34. error: function (XMLHttpRequest, textStatus,
  35. errorThrown)
  36. {
  37. alert('Error submitting request.');
  38. }
  39. });
  40.  
  41.  
  42. });
  43. });
  44.  



Można tez ustawiac disabled buttona po stronie PHP.
rokasny
Kombinuje z tym ciastkiem, ale w ogóle button nie reaguje, jak przedtem wykonywał funkcję i robił się disabled, tak z cookie nic się nie dzieje :/
Czy nie trzeba może ciastek jeszcze zewnętrznie(poza jquery) gdzieś zdefiniować?
werdan
Tak. Sprobuj wczesnij niz $(document).ready().
rokasny
  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:{obliczmrp: $(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>


Dalej nic, nie chce ani wykonać funkcji ani złapać cookie. Czy to może być wina localhosta czy czegoś?
W czym tkwi problem?
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.