如何在JSON数据发送回页面后使用jquery显示元素

时间:2014-12-15 07:13:50

标签: jquery ajax json hide show

在第1页上,用户单击图像,弹出窗口允许上传图像文件。运行此echo的PHP页面返回一个json_encoded字符串,其中包含一个名为“id”的变量。

以下是响应字符串的示例:

"{"state":200,"message":null,"result":"..\/0images\/listimg\/mod\/20141215064959.jpeg","id":"570"}"  

当弹出模式关闭时,我想要显示一个元素(之前隐藏在第1页上)。元素是:

<div class="edit_right">

我的逻辑是显示元素,如果'id'作为JSON数据发送,因此如果ID不为null,则元素将显示。 我正在排除的JS是

    <script>
        $(document).ready(function(){
            $(".edit_right").hide();
        });
    $('#modal').on('hidden.bs.modal', function () {
        function handleResponse(data){
    console.log(data);
    }
        $.getJSON(crop-avatar.php)
            .done(function(data) {
             if (data.id !== null){
              $(".edit_right").show();
             } else {
            $(".edit_right").hide();
            }
         });
       })
    </script>

并位于结束体标记之前。此脚本不起作用,该元素始终隐藏。我怎么能纠正这个?

4 个答案:

答案 0 :(得分:1)

您需要将网址传递到$.getJSON(),以便知道从哪个网页检索数据,我不知道您将data传递给handleResponse()的原因,它对该功能没有影响。

答案 1 :(得分:1)

我认为在handleResponse中返回的数据是一个json字符串,所以你不必为此做另外的getJSON。 做

function handleResponse(data){
console.log(data);
}

如果它显示一个json字符串,那么你可以从那里获取它。

答案 2 :(得分:1)

你没有用参数

调用$ .getJson

答案 3 :(得分:1)

来自jQuery docs

$.getJSON( "ajax/test.json", function( data ) {
    // Do something
});

所以你需要做的是:

function handleResponse(data){
   $.getJSON('path/to/your/php-file.php').done(function(data){
        // Do something
    })
}

也不要忘记调用handleResponse()!