如何正确使用json ajax

时间:2017-02-14 19:18:36

标签: javascript php jquery json ajax

我想使用JSON将数据从php发送到浏览器。我想我理解这个过程 - 请参阅下面的示例代码。但是有人告诉我这不是正确的做法。我已经研究了三天,但由于我的英语很差,我不相信我找到了答案。

我希望的是一个代码示例,它将接收JSON并将其转换为html元素(如div),并通过CSS等方式为其提供样式。

我真的只想要一个如何做到这一点的例子,以便我可以从中学习并根据自己的需要自己扩展它,但我不自信这种方法是正确的,并且不想写更多错误的代码。 / p>

由于

的Javascript

$(document).ready(function() {
    $.ajax({
        type : 'POST',
        url : 'server.php',
        dataType:"json",
        success : function (data) { 
            $("#orders").html(JSON.stringify(data));
        }
    }); 
});

PHP

<?php 
    $db = new PDO('mysql:host=localhost;dbname=Contact', 'root', '');
    $statement=$db->prepare("SELECT * FROM myfeilds");
    $statement->execute();
    $results=$statement->fetchAll(PDO::FETCH_ASSOC);
    $json=json_encode($results);
    echo $json;
?>

1 个答案:

答案 0 :(得分:0)

您无需对响应中返回的数据调用JSON.stringify。此方法用于将javascript对象转换为JSON字符串,但您的PHP代码应该已经通过它的外观发送回JSON字符串。

所以它取决于你返回的JSON的样子,但通常它会是这样的:

{"name":"Mike", "phone":"5551234", ...} etc

所以在你的成功回调中,你会做这样的事情:

$("#name").text(data.name);
$("#phone").text(data.phone);

等等。

请注意,我正在使用.text()方法。您可以使用.html(),但除非您的JSON字符串包含HTML,否则您可能不需要这样做,或者您希望像这样编写HTML:

$("#name").html("<p>" + data.name + "</p>");

至于样式,我会提前设置你的样式,这样你就不必在javascript中这样做,因为这样会更有效。

然而,如果由于某种原因你需要那么你可以做类似的事情:

$("#name").css({"display":block","color": "#000"});

希望有所帮助。