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

ajax, php zapytanie do bazy i wyświetlenie danych

VPS Starter Arubacloud
0 głosów
861 wizyt
pytanie zadane 12 marca 2018 w PHP przez damian9901 Bywalec (2,140 p.)

Próbuję wysłać zapytanie do bazy danych przy pomocy php, ajax, aby w później wyświetlić te dane. Niestety występuje jakiś problem, z którym nie mogę sobie poradzić. Podczas wykonywania skryptu ajax z dataType: 'text', wszystkie dane pokazują mi się w konsoli(tak jak chciałem), lecz podczas zmiany na 'json', dosłownie NIC się nie wyświetla.

Poniżej przedstawiam kod:

1.

	$(document).ready(function(){
		$(".profile").click(function(){
			
            var id = $(this).data('id');
			
            $.ajax({
                    method: "GET",
                    url: "../functions/getDataFromDB.php",
                    data: {id:id},
					dataType: "json",
					contentType: "application/json; charset=utf-8",
                    success: function(data){
						//var tt = JSON.parse(data);
						

						console.log(data);


                    }
            });

		});
	});

2.

	if(isset($_GET['id'])){
		$id = $_GET['id'];
		
		$vv = new AddService();
		
		echo $vv->GetPlayer($id);
		
	}
		

3.

	public function GetPlayer($id){
		$id = $_GET['id'];
		
		$query = "SELECT zawodnik.imie, zawodnik.nazwisko,szkola.nazwa,plec.plec FROM zawodnik INNER JOIN szkola ON zawodnik.id_szkoly=szkola.id_szkoly INNER JOIN plec ON zawodnik.id_plci=plec.id_plci WHERE zawodnik.id_zawodnika={$id}";
		$result = $this->db->query($query);
		if ($result->num_rows <= 0) {
			return false;	
		}
		
		while($row = $result->fetch_assoc()){
			$this->PlayerInfo[] = $row;
		}
		
		return json_encode($this->PlayerInfo);
	}

Chciałbym uzyskać w ten sposób możliwość wyświetlenia danych z tablicy w skrypcie ajax. Jakieś porady?

2 odpowiedzi

0 głosów
odpowiedź 12 marca 2018 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)

Chcesz przekazać zmienną id w parametrze funkcji. Ale tak jak Ty to zrobiłeś, to tak nie da się. Ustawiasz parametr w funkcji, żeby później ten parametr nadpisać z wartością z tablicy _GET.

Jeszcze zamiast return, musisz użyć echo w funkcji w której chcesz wyświetlić dane w jsonie.

A przekazanie parametru tak możesz zrobić, podczas wywołania funkcji.

if(isset($_GET['id'])){
    $id = $_GET['id'];
     
    $addService= new AddService();

    $addService->GetPlayer($id);
     
}
    

Oczywiście jakaś walidacja by się przydała.

public function GetPlayer($id){
     
    $query = "SELECT zawodnik.imie, zawodnik.nazwisko,szkola.nazwa,plec.plec FROM zawodnik INNER JOIN szkola ON zawodnik.id_szkoly=szkola.id_szkoly INNER JOIN plec ON zawodnik.id_plci=plec.id_plci WHERE zawodnik.id_zawodnika={$id}";
    $result = $this->db->query($query);
    if ($result->num_rows <= 0) {
        return false;   
    }
     
    $row = $result->fetch_assoc();
     
    echo json_encode($row);
}

Ta pętla też jest bez sensu. Wypełnia ona Ci tablicę o rozmiarze ilości zwróconych rekordów z bazy danych i wypełnia ją tymi samymi danymi.

 

Jeszcze warto, żebyś się zainteresował co zwraca Ci konsola w przeglądarce. Wtedy będziesz wiedział co jest nie tak z kodem.

komentarz 12 marca 2018 przez damian9901 Bywalec (2,140 p.)
w tym rzecz, że chciałbym się dowiedzieć, co zrobić, żeby....

Tak jak wspomniałem wyżej, przy użyciu dataType "json" konsola jest pusta, co w przypadku "text", zwraca

{"imie":"test","nazwisko":"test","nazwa":"test","plec":"men"}, czyli to, co chciałem.
komentarz 12 marca 2018 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)
Ale nie zwraca Ci się żadna wartość w odpowiedzi, czy w ogóle nie wysyła Ci się funkcja Ajax?
komentarz 12 marca 2018 przez damian9901 Bywalec (2,140 p.)
funkcja ajax się wysyła. Widnieje w zakładce Network. Nie zwraca żadnej wartości tylko i wyłącznie przy dataType "json".
0 głosów
odpowiedź 13 marca 2018 przez damian9901 Bywalec (2,140 p.)
Czy mogę liczyć na kogoś pomoc?

Podobne pytania

0 głosów
2 odpowiedzi 890 wizyt
0 głosów
0 odpowiedzi 280 wizyt
pytanie zadane 22 lipca 2017 w JavaScript przez Jonki Dyskutant (8,180 p.)
0 głosów
0 odpowiedzi 269 wizyt

92,830 zapytań

141,771 odpowiedzi

320,817 komentarzy

62,159 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

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!

...