• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ajax jak przesłać dane PHP do JS

Object Storage Arubacloud
0 głosów
1,066 wizyt
pytanie zadane 13 lipca 2017 w JavaScript przez `Krzychuu Stary wyjadacz (13,940 p.)

Witam

Napisałem prosty skrypt który dodaje do bazy danych dane z formularza za pomocą ajax ale mam mały problem i nie wiem jak go rozwiązać, w php mam if'a który sprawdza czy dane przyszły jeśli przyszły to dodaje do bazy a jeżeli np. dane nie przyszły to wykonuje się else tylko tutaj mam problem jak teraz przesłać else do js ?

 

require_once('connect.php');

if (!empty($_POST['name'])) {

    $name = $_POST['name'];

    $name = htmlentities($name, ENT_QUOTES, "UTF-8");

    $connect = new mysqli($host, $db_user, $db_password, $db_name);

    $sql = $connect->query(sprintf("INSERT INTO `Test`(`Name`) VALUES ('%s')",
    mysqli_real_escape_string($connect,$name)
    ));
	
} else {
   $msg = 'Mamy mały problem kod nie działa';
}

$connect->close();

 

        $.ajax({
            type: 'POST',
            url: 'test.php',
            data: {
                name: Name,
            },
            success: function() {
                $('#result').html('Dodane');				
            },
            error: function () {
                $('#result').html('Błąd!');
            }
        });

 

1 odpowiedź

+3 głosów
odpowiedź 13 lipca 2017 przez Comandeer Guru (602,340 p.)
wybrane 13 lipca 2017 przez `Krzychuu
 
Najlepsza
No po prostu wyświetlić. Cokolwiek wyświetlisz w PHP, to zostanie przesłane jako odpowiedź do skryptu JS.
komentarz 13 lipca 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)
W php mam zmienną msg jak ją złapać w js?
komentarz 13 lipca 2017 przez Comandeer Guru (602,340 p.)

wyświetlić

 echo $zmienna;

komentarz 13 lipca 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)

A dałoby się tak zrobić że robię zmienna w php

$zmienna = AddFALSE;

i teraz ją przesyłam do js i w funkcji success sprawdzam i np

 success: function() {
        
    if (Result == 'AddTrue') {
      $('.result'').html('Dodane');
    } else {
      $('.result').html('Błąd');
    }
             
},

 

komentarz 13 lipca 2017 przez Comandeer Guru (602,340 p.)
W takim wypadku poczytaj sobie o formacie JSON.
komentarz 13 lipca 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)
próbowałem coś tworzyć z json_encode(), dodałem do ten funkcji $zmienna = AddFALSE ale mam probłem gdzie dodać do success czy do error
komentarz 13 lipca 2017 przez Comandeer Guru (602,340 p.)

Zobacz, jakie parametry dostajesz do success.

komentarz 13 lipca 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)
czyli muszę wywołać alert(json); ?
komentarz 13 lipca 2017 przez Comandeer Guru (602,340 p.)

Nie… AFAIR dane przesłane przez serwer trafiają jako 1. parametr do success.

komentarz 13 lipca 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)
edycja 13 lipca 2017 przez `Krzychuu
trochę się pogubiłem, najpierw dodaje json_encode() do php a później dodaje do funkcji anonimowej json tak?
komentarz 13 lipca 2017 przez Comandeer Guru (602,340 p.)

Dajesz w PHP coś typu echo json_encode( [ 'msg' => $msg ] ); a w JS coś typu:

success: function( data ) {
    $( '.result' ).text( data.msg );    
},

 

komentarz 13 lipca 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)
a muszę dodać do ajax funkcje dataType: 'json' ?
komentarz 13 lipca 2017 przez Comandeer Guru (602,340 p.)
Wypada.
komentarz 13 lipca 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)
ok, już wszystko rozumiem, nie wiedziałem że do json_encode() było trzeba dodać echo, dziękuje za pomoc :)
komentarz 13 lipca 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)
mam jeszcze jedno pytanie funkcja error jest od tego żeby wyświetlała wiadomość gdy coś sie popsuło z kodem js a funkcja succes gdy się uda nawiązać połączenie z php tak?
komentarz 13 lipca 2017 przez Comandeer Guru (602,340 p.)
Error, gdy serwer zwróci błąd (status HTTP inny niż 20x) albo nie uda się go odpytać.
komentarz 13 lipca 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)
czym się różni funkcja complete od success?
komentarz 13 lipca 2017 przez Comandeer Guru (602,340 p.)
Na to to akurat dokumentacja jQuery bardzo dokładnie odpowiada :P
komentarz 13 lipca 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)
jeśli dobrze przeczytałem i zrozumiałem to success wykona się gdy nie będzie żadnego błędu typu HTTP 20x a complete zawsze nie ważne czy był błąd czy nie, której wersji lepiej używać?
komentarz 13 lipca 2017 przez Comandeer Guru (602,340 p.)
To zależy, co chcesz osiągnąć.

PS bląd jest wtedy, kiedy kod NIE JEST z zakresu 200-299 ;)
komentarz 13 lipca 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)
mam zamiar zrobić system logowania za pomocą ajax, jaką funkcję użyć?
komentarz 13 lipca 2017 przez Comandeer Guru (602,340 p.)

IMO powinieneś użyć success i error.

komentarz 13 lipca 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)
Dziękuję za pomoc i poświęcony czas :)
komentarz 13 lipca 2017 przez `Krzychuu Stary wyjadacz (13,940 p.)

zrobiłem mój pierwszy skrypt w ajaxie ale mam problem gdy dodam do funkcji ajax dataType: 'json' to wtedy odpowiedz z serwera jest zawsze error, mój skrypt 

        $.ajax({
            type: 'POST',
            url: 'test.php',
	    dataType : 'json',
            data: {
                name: Name,
            },
	   success: function (json) {				
              $('.result').html('Odpowiedz serwera'+json+'(success)');
            }, 
            error: function () {
                $('.result').html('Odpowiedz serwera (Error:)');	
            }
        });

 

<?php

require_once('connect.php');

if (!empty($_POST['name'])) {

    $name = $_POST['name'];

    $name = htmlentities($name, ENT_QUOTES, "UTF-8");

    $connect = new mysqli($host, $db_user, $db_password, $db_name);

    $sql = $connect->query(sprintf("INSERT INTO `test`(`Name`) VALUES ('%s')",
    mysqli_real_escape_string($connect,$name)
    ));
			
    $connect->close();	
} else {
	
	$result = array();
	$result['False'] = 'False';
	
	echo json_encode($result);
	
}

?>

 

Podobne pytania

0 głosów
1 odpowiedź 270 wizyt
0 głosów
1 odpowiedź 260 wizyt
pytanie zadane 1 czerwca 2016 w JavaScript przez niejestemrobotem Początkujący (360 p.)
0 głosów
0 odpowiedzi 1,105 wizyt

92,626 zapytań

141,484 odpowiedzi

319,837 komentarzy

62,006 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...