Ajax和PHP:SELECT查询数据库

时间:2015-11-19 09:33:07

标签: javascript php ajax database

我有一个UI,用户可以在其中添加对象(在我的数据库中存储为JSON)。因此,当用户点击一个按钮时,它会调用ajax,它会调用我的php来获取所需的JSON代码。

问题是我的ajax让我“成功”,但没有JSON代码。我不知道问题出在哪里。

这是我的JS / AJAX:

 var object, objectJson;
    var objectName = $(this).attr("attr-lib");
    var objectId = $(this).attr("attr-id");

    $.ajax({
        url: 'scriptObject.php',
        type: 'POST',
        data: {objectId: objectId},
        dataType: 'json',
        success: function(response) {
            console.log("success");
            console.log(response);
        }
    });

这是我的scriptObject.php

$objectId = $_POST["objectId"];

    $query = "SELECT objectJson FROM object WHERE objectId = ' $objectId '";

    $result = mysql_query($query);

    if($result)
    {
        if(mysql_num_rows($result) > 0)
        {
            $objJSON = mysql_fetch_array($result);
            $res = array("status"=>"success", "objectJson" => $objJSON['objectJson']);
        }
        else
        {
            $res = array("status"=>"error", "message" => "No records found.");
        }
    }
    else
        $res = array("status"=>"error", "message" => "Problem in fetching data.");

    echo json_encode($res);

[编辑]

它回答我:

{"status":"error","message":"Problem in fetching data."}

3 个答案:

答案 0 :(得分:1)

尝试以下

<script type="text/javascript">
    var object, objectJson;
    var objectName = $(this).attr("attr-lib");
    var objectId = $(this).attr("attr-id");

    $.ajax({
        url: 'scriptObject.php',
        type: 'POST',
        dataType : 'json',
        data: { objectId: objectId },
        success: function(response) {
            var json = $.parseJSON(response);
            if(json.status == 'error')
                console.log(json.message);
            else if(json.status == 'success')
                console.log(json.objectJson);
        }
    });
</script>

并在scriptObject.php

<?php 
    // your database connection goes here
    include 'config.php';

    $objectId = $_POST["objectId"];

    $query = "SELECT objectJson FROM object WHERE objectId = ' $objectId '";

    $result = mysql_query($query);

    if($result)
    {
        if(mysql_num_rows($result) > 0)
        {
            $objJSON = mysql_fetch_array($result);
            $res = array("status"=>"success", "objectJson" => $objJSON['objectJson']);
        }
        else
        {
            $res = array("status"=>"error", "message" => "No records found.");
        }
    }
    else
        $res = array("status"=>"error", "message" => "Problem in fetching data.".mysql_error());

    echo json_encode($res);
?> 

答案 1 :(得分:0)

scriptObject.php

if(isset($_POST['objectId']))
{
    $objectId = $_POST["objectId"];
    $query = "SELECT objectJson FROM object WHERE objectId = ' $objectId '";
    $result=mysql_query($query);
        echo json_encode($result);
        die;
}
你正在执行一个函数里面的php代码。 编译器或解释器如何知道在php文件中执行函数。

答案 2 :(得分:-1)

dataType添加到您的ajax选项

$.ajax({
    url: 'scriptObject.php',
    type: 'POST',
    data: objectId,
    dataType : 'json',
    success: function(response) {
        console.log("success");
        console.log(response);
    }
});

然后你的PHP代码

function getObjectJson() {
    $objectId = $_POST["objectId"];
    $query = "SELECT objectJson FROM object WHERE objectId = ' $objectId '";
    $result=mysql_query($query);

    echo json_encode($result);
}