Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odbiór danych PHP w AJAX
Forum PHP.pl > Forum > XML, AJAX > AJAX
diamondking
Witajcie

znalazłem kod:

  1. <script>
  2. function checkAvailability() {
  3. $("#loaderIcon").show();
  4. jQuery.ajax({
  5. url: "check_availability.php",
  6. data:'username='+$("#username").val(),
  7. type: "POST",
  8. success:function(data){
  9.  
  10. $("#user-availability-status").html(data);
  11. $("#loaderIcon").hide();
  12. },
  13. error:function (){}
  14. });
  15. }
  16. </script>


Ogólnie działa.
Ale chcę uzależnić dalsze działanie AJAXA od tego czy PHP zwróci wartość "jest" lub "niema"

pomoże ktoś?
viking
Do poczytania https://prophp.pl/advice/show/17/jak_przygo...dan_xhr_json%3F
diamondking
Mam kod:

  1. <script>
  2. $(function() {
  3. $('#userdelete').on('submit', function(event) {
  4. event.preventDefault();
  5. $.ajax({
  6. url: "kasuj.php",
  7. method: "POST",
  8. data: $(this).serialize()
  9. })
  10. .done(function(data) {
  11. $('#message').html(data.message);
  12. })
  13. .fail(function(data) {
  14. $('#message').html(data.message);
  15. });
  16. });
  17. });
  18. </script>
  19.  
  20.  
  21.  
  22.  
  23.  
  24. <form method="POST" id="userdelete">
  25. <input type="text" name="userid">
  26. <input type="submit">
  27. </form>
  28.  
  29. <div id="message"></div>


a plik kasuj.php wyglada tak:

  1. // POŁĄCZ Z BAZĄ DANYCH
  2. $conn = @mysql_connect ($cfg['db_server'], $cfg['db_user'], $cfg['db_pass']);
  3. $select = @mysql_select_db ($cfg['db_name'], $conn);
  4.  
  5. $id = $_POST['userid'];
  6.  
  7. if (isset($_POST["userid"]) && !empty($_POST["userid"])) {
  8.  
  9. $sprawdz="select user_id from users where user_id='$id'";
  10. $rekordy = mysql_query($sprawdz);
  11. if(mysql_num_rows($rekordy)==0)
  12. {
  13. echo json_encode([
  14. 'message' => 'Nieprawidłowa akcja'
  15. ]);
  16. }
  17. else
  18. {
  19.  
  20. $kas1 = "DELETE FROM users WHERE user_id='$id'";
  21.  
  22. if(mysql_query($kas1)){
  23.  
  24. echo json_encode([
  25. 'message' => 'Ok'
  26. ]);
  27.  
  28. }
  29.  
  30. }
  31. }


kasuje z bazy lecz nie wyświetla komunikatu ... już nie wiem co robić biggrin.gif
viking
Przede wszystkim to https://prophp.pl/advice/show/3/korzystam_z...ed._dlaczego%3F
Zrób to porządnie jak było pokazane. Pewnie jakiś notice leci. Sprawdź w narzędziach deweloperskich jak było opisane.
diamondking
Przekopiowałem wszystko z tej strony - uzupełniłem o swoją baze danych i nadal nie działą
viking
Co mówi konsola przeglądarki, co masz a w zakładce sieć. Nie działa to nie odpowiedź.
diamondking
Pawie działa.
W sensie jak wyślę formularz to komunikat "bad" lub "ok" wyświetli się na stronie przez ułamek sekundy i znika ... sad.gif

  1. ipt>
  2. $(document).ready(function(){
  3. $('#usun').click(function(){
  4. var login= $('#login').val();
  5. if(login != '')
  6. {
  7. $.ajax({
  8. url:"fetch2.php",
  9. method:"POST",
  10. data:{login:login},
  11. dataType:"JSON",
  12. success:function(data)
  13. {
  14. $('#employee_age').text(data.age);
  15. }
  16. })
  17. }
  18. else
  19. {
  20. alert("Please Select Employee");
  21.  
  22. }
  23. });
  24. });
  25. </script>
  26.  
  27. <form method="POST">
  28. <b>Login:</b> <input type="text" name="login" id="login"><br>
  29. <input type="submit" value="Usuń" name="usun" id="usun">
  30. </form>
  31.  
  32. <span id="employee_age"></span>
  33.  
  34. </body>



  1. <?php
  2. //fetch.php
  3. if(isset($_POST["login"]))
  4. {
  5.  
  6. $login = $_POST["login"];
  7.  
  8. $cfg['db_server'] = 'localhost'; // Serwer bazy danych
  9. $cfg['db_user'] = '25870472_abc'; // Nazwa użytkownika
  10. $cfg['db_pass'] = '****************'; // Hasło
  11. $cfg['db_name'] = '25870472_abc'; // Nazwa bazy danych
  12.  
  13. // POŁĄCZ Z BAZĄ DANYCH
  14. $conn = @mysql_connect ($cfg['db_server'], $cfg['db_user'], $cfg['db_pass']);
  15. $select = @mysql_select_db ($cfg['db_name'], $conn);
  16.  
  17.  
  18. $sql = mysql_query("SELECT * FROM users WHERE name='".$login."'");
  19. $licz = mysql_num_rows($sql);
  20.  
  21. if($licz>0){
  22.  
  23. mysql_query("DELETE FROM users WHERE name='".$login."'")
  24. or die('Błąd zapytania: '.mysql_error());
  25.  
  26. $ok = "OK";
  27. $data["age"] = $ok;
  28.  
  29. }
  30.  
  31. else {
  32. $bad = "bad";
  33. $data["age"] = $bad;
  34. }
  35.  
  36. echo json_encode($data);
  37. }
  38. ?>

nospor
Bo podpiales AJAX do guzika ktory tez normalnie sle forma to cie strona przeladowuje...
Daj w onclick
return false;

i formularz ci sie nie wysle
diamondking
Dziękuję!

TEMAT DO ZAMKNIĘCIA
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-2024 Invision Power Services, Inc.