【问题标题】:Ajax call - PHP return valueAjax 调用 - PHP 返回值
【发布时间】:2016-06-02 20:07:38
【问题描述】:

我希望 php 文件在 ajax 调用时返回数据(来自数据库)。 Ajax 调用每次都会返回错误警报。我尝试了所有方法,但不知道如何将数组从 PHP 返回到 ajax 调用

到目前为止,我做了这个..

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;
}

}

我也试过这个...

【问题讨论】:

  • 尝试在 //dataType: "json", 之类的 ajax 中注释掉这一行 dataType: "json",,然后在 successerror 中立即在 : function(data) { 之后写下 console.log(data);。查看 php 在控制台中返回的内容。您还需要 error: 来返回 data。它可能有助于确定 php 页面在做什么。此外,您应该检查控制台以查看 javascript 中没有返回错误。
  • 在注释掉 dataType: "json" 行之后,ajax 调用会导致函数成功。但是后来我在成功函数中尝试了这个,它不起作用,我猜数据仍然是空的for(elem in data){ document.getElementById("kat_id").innerHTML += 'b'; }

标签: javascript php jquery ajax return-value


【解决方案1】:

您需要一个由服务器返回的 json 格式的字符串。使用 json_encode() 而不是尝试回显您的数组(这是给您的数组到字符串错误的原因)。

【讨论】:

  • Tnx,但 ajax 再次出现错误。我需要将变量 $akcije 获取到 ajax,然后在成功函数中打印所有数据
  • @Fale1994 你有没有从你的 php 代码中删除 echo $_GET['kategorija'];
猜你喜欢
  • 1970-01-01
  • 2015-10-08
  • 1970-01-01
  • 2011-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-01
相关资源
最近更新 更多