Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ AJAX _ Odbiór danych PHP w AJAX

Napisany przez: diamondking 17.01.2018, 10:26:03

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ś?

Napisany przez: viking 17.01.2018, 10:35:32

Do poczytania https://prophp.pl/advice/show/17/jak_przygotowac_php_do_obslugi_zadan_xhr_json%3F

Napisany przez: diamondking 17.01.2018, 16:45:36

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).http://www.php.net/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 = @http://www.php.net/mysql_connect ($cfg['db_server'], $cfg['db_user'], $cfg['db_pass']);
  3. $select = @http://www.php.net/mysql_select_db ($cfg['db_name'], $conn);
  4.  
  5. $id = $_POST['userid'];
  6.  
  7. if (http://www.php.net/isset($_POST["userid"]) && !http://www.php.net/empty($_POST["userid"])) {
  8.  
  9. $sprawdz="select user_id from users where user_id='$id'";
  10. $rekordy = http://www.php.net/mysql_query($sprawdz);
  11. if(http://www.php.net/mysql_num_rows($rekordy)==0)
  12. {
  13. http://www.php.net/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(http://www.php.net/mysql_query($kas1)){
  23.  
  24. http://www.php.net/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

Napisany przez: viking 17.01.2018, 16:54:12

Przede wszystkim to https://prophp.pl/advice/show/3/korzystam_z_funkcji_php_mysql_%2A_i_otrzymuje_komunikat_deprecated._dlaczego%3F
Zrób to porządnie jak było pokazane. Pewnie jakiś notice leci. Sprawdź w narzędziach deweloperskich jak było opisane.

Napisany przez: diamondking 17.01.2018, 17:06:50

Przekopiowałem wszystko z tej strony - uzupełniłem o swoją baze danych i nadal nie działą

Napisany przez: viking 17.01.2018, 17:14:40

Co mówi konsola przeglądarki, co masz a w zakładce sieć. Nie działa to nie odpowiedź.

Napisany przez: diamondking 18.01.2018, 09:54:31

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(http://www.php.net/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 = @http://www.php.net/mysql_connect ($cfg['db_server'], $cfg['db_user'], $cfg['db_pass']);
  15. $select = @http://www.php.net/mysql_select_db ($cfg['db_name'], $conn);
  16.  
  17.  
  18. $sql = http://www.php.net/mysql_query("SELECT * FROM users WHERE name='".$login."'");
  19. $licz = http://www.php.net/mysql_num_rows($sql);
  20.  
  21. if($licz>0){
  22.  
  23. http://www.php.net/mysql_query("DELETE FROM users WHERE name='".$login."'")
  24. or http://www.php.net/die('Błąd zapytania: '.http://www.php.net/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. http://www.php.net/echo json_encode($data);
  37. }
  38. ?>


Napisany przez: nospor 18.01.2018, 09:57:16

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

Napisany przez: diamondking 18.01.2018, 10:03:35

Dziękuję!

TEMAT DO ZAMKNIĘCIA

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)