Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: AJAX Gdzie jest błąd ?
Forum PHP.pl > Forum > XML, AJAX
RosheD
Witam bardzo serdecznie. Dopiero zaczynam swoją zabawę z Ajaxem i napisałem sobie prosty na początek kod
A więc może na początek HTML
  1. <form method="post" class="form">
  2. <input name="cena" placeholder="Cena">
  3. <input type="submit" value="złóż zamówienie" />
  4. </form>

  1. <?
  2. $vat = 0.23;
  3. $cena = $_POST['cena'];
  4. $pro = $cena + $wynik;
  5. echo "Wysokość vat wynosi ";
  6. $wynik = $cena * $vat;
  7. echo $wynik;
  8. echo '<br />';
  9. echo '<br />';
  10. $pro = $cena + $wynik;
  11. echo "Do zapłaty " .$pro;
  12. ?>

No i wkońcu ajax
  1. $(submit).click(function() {
  2. $.ajax({
  3. type: "POST",
  4. url: "test.php",
  5. dataType: "json",
  6. });
  7. success: function(json) {},
  8. error : function(){
  9. alert("Coś nie wyszło")
  10. },
  11. complete : function() {
  12. alert('To jest skonczone');
  13. },
  14. alert('Dobiegło końca');
  15. });

Gdzie popełniłem błąd ? Firebug mówi " SyntaxError: function statement requires a name"
success : function(TextStatus){
i wskazuje szczałką na "(".
com
jakiej wersji JQuery używasz?

zresztą po pierwsze
Cytat
Deprecation Notice: The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks are deprecated as of jQuery 1.8. To prepare your code for their eventual removal, use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.


pod drugie jak już tak chciałeś to 6 lini nie dajesz ;
RosheD
Wersja JQuery to 1.10.2 . Więc jak powinna wyglądać prawidłowo 6 linia questionmark.gif Bo moim zdaniem powinno właśnie tak chyba że od $.ajax ma zamkniecie ( być na okńcu wszystkich errorow success itp tak? No i jak tak to trzeba to podmienić na te które podałeś. A powiesz mi skąd to masz ?

@Edit
  1. $("#cena submit").click(function() {
  2. $.ajax({
  3. type: "POST",
  4. url: "test.php",
  5. dataType: "json",
  6. });
  7. jqXHR.success(
  8. alert('Działa?'));
  9. jqXHR.error(
  10. alert('Error'));
  11. jqXHR.complete(
  12. alert('Complete')
  13. );
  14. });


Czemu alerty nie działają po nacisnieciu klawisza submit? I submit jest w id cena
com
Jakby się tak zajrzało do dokumentacji http://api.jquery.com/jquery.ajax/ to byś mnie o to nie pytał smile.gif , poza tym napisałem Ci że 6 lini bez średnika, przecież nie masz zmiennej jqXHR to tak to Ci nie zadziała, przejrzyj dokumentacje i wróć, ale pewnie wtedy nie będziesz już miał takiej potrzeby smile.gif
RosheD
Noo to teraz coś poszło do przodu smile.gif
Teraz jaka komenda odpowiada za ściągniecie zmiennej z php do jquery? Chodzi o to żeby wyświetlił się wynik po prostu smile.gif
  1. $(function () {
  2. $("#cena input").click(function(e){
  3. var jqxhr = $.post( "test.php", function() {
  4. })
  5. .done(function(msg) {
  6. $('.cena').text(msg);
  7. })
  8. .fail(function() {
  9. alert( "Serwer nie odpowiada..." );
  10. });
  11. })
  12. })
IceManSpy
W pliku php w którego robisz strzał AJAXem robisz albo echo "jakiś tam tekst" albo zwracasz JSONa i obrabiasz go po stronie klienta.
RosheD
Dobra sam już sobie poradziłem z tym problemem.
  1. var dataString = $("form").serialize();
no i potem wybranie tej zmiennej robi wszystko co trzeba.
com
i o to chodziło brawo smile.gif
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.