2016-06-02 3 views
1

Я хочу, чтобы php-файл возвращал данные (из базы данных) на вызов ajax. Ajax-вызов возвращает сообщение об ошибке каждый раз. Я попробовал все, но понятия не имею, как вернуть массив из PHP для AJAX вызоваAjax call - возвращаемое значение PHP

До сих пор я не сделал этого ..

Ajax вызова

function dohvatiPrveTriAkcije(id){ 
var url = 'http://localhost/ljekarna/model/akcija.php'; 
$.ajax({ 
    type: "POST", 
    url: url, 
    cache: false, 
    data: { "kategorija": id}, 
    dataType: "json", 
    success: function (data) { 
     document.getElementById("kat_id").innerHTML += 'aaa'; 
    }, 
    error: function() { 
     alert('Pojavila se greška pri dohvacanju akcija za odabranu kategoriju'); 
    } 
}); 
return null; 
} 

PHP класс

<?php 

require_once 'baza_model.php'; 

$akcija = new Akcija(); 

if (isset($_GET['kategorija'])) { 
echo $_GET['kategorija']; 
$akcije = $akcija->dohvatiPrveTriAkcijeZaKategoriju($_GET['kategorija']); 
echo $akcije; 
} 

class Akcija{ 
private $baza; 

static function dohvatiPrveTriAkcijeZaKategoriju($kategorija){ 

    $baza = new Baza(); 
    $akcije = array(); 

    $upit = 'SELECT lijek.naziv, akcija.postotak, akcija.datum_zavrsetka FROM akcija join lijek on akcija.lijek = lijek.id 
      join kategorija on lijek.kategorija = kategorija.id 
      where akcija.datum_zavrsetka > CURDATE() AND kategorija.id = ' . $kategorija . ' AND akcija.status = 1 
      ORDER BY akcija.datum_zavrsetka ASC LIMIT 3'; 

    $rez = $baza->selectDB($upit); 
    while($red = $rez->fetch_assoc()){ 
     echo "id: " . $red["id"]; 
     $akcije[] = $red; 
    } 
    return $akcije; 
} 

} 

Я также пробовал это ...

enter image description here

+0

Попробуйте прокомментировать эту строку 'dataType:" json ",' в ajax, например '// dataType:" json ",' then в 'success' и в' error' write 'console.log (data) ; 'сразу после': function (data) {'. Посмотрите, что возвращает php в консоли. Вам нужна 'error:' для возврата 'data'. Это может помочь определить, что делает страница php. Кроме того, вы должны просто проверить консоль, чтобы увидеть, что в javascript нет ошибок. – Rasclatt

+0

После комментирования строки 'dataType:" json "' вызов ajax приводит к успешной функции. Но потом я попробовал эту функцию успеха, и она не работает, я думаю, что данные все еще пустые. 'for (elem in data) { document.getElementById (" kat_id "). InnerHTML + = 'b'; } ' – Fale1994

ответ

1

Вам нужна строка форматирования json, возвращаемая сервером. Используйте json_encode() вместо того, чтобы пытаться отобразить ваш массив (это то, что дает вам массив для строковой ошибки).

+0

Tnx, но ajax снова приводит к ошибке. Мне нужно получить переменную $ akcije в ajax, а затем распечатать все данные в функции успеха – Fale1994

+0

@ Fale1994 вы удалили 'echo $ _GET ['kategorija'];' из вашего php-кода. –

+0

Да, все еще не работает – Fale1994