json ajax无法正常工作

时间:2014-03-18 18:10:12

标签: javascript php jquery ajax json

我试图使用json从php文件中检索一些信息,但它不起作用,我不知道为什么,它没有显示任何错误。我在运行时没有遇到任何错误,但是我无法弄清楚是什么原因造成这种情况无效。另外,控制台日志中没有显示任何内容

这是我的js

$(document).on('change', 'input[name="design"]', function(){
        var val = $(this).val();

        $.ajax({
            type: 'POST',
            url: 'ajax/getdesign.php',
            data: {val:val},
            dataType: 'json',
            success: function(result){
                console.log(result.design);
                console.log(result.option);
                $('.pagepreview').html(result.design);
                $('.design-options').html(result.option);
            }
        });
    });

这是php

<?php

if(isset($_REQUEST)){
    $design = $_REQUEST['val'];

    if($design == '1'){

        $thedesign = '
            <div class="d1-header"></div>
            <div class="d1-sidebar"></div>
            <div class="d1-content"></div>';

        $theoptions = '
            <label>Header Color</label> <input type="color" id="header-color" />
            <label>Header Image</label> <input type="file" id="header-image" />';

    } else if($design == '2'){
        $thedesign = '
            design 2';

        $theoptions = '
            options 2';

    } else if($design == '3'){
        $thedesign = '
            design 3';

        $theoptions = '
            options 3';
    } else {
        echo "failed";
    }

    echo json_encode(array('design'=> $thedesign));
    echo json_encode(array('option'=> $theoptions));

}

header('Content-Type: application/json');
?>

3 个答案:

答案 0 :(得分:1)

问题可能是因为您在单个输出中尝试了两个json_encode()

尝试将数组合并到一个输出中,如下所示:

echo json_encode(array('design'=> $thedesign , 'option'=> $theoptions));

答案 1 :(得分:0)

尝试在你的成功函数

之后的ajax调用中添加一个错误函数
 error: function (msg) {
 alert(msg.responsetext);
  };

并使用fiddler捕获踪迹

答案 2 :(得分:0)

解决了这个问题,我在数据变量上缺少了第一件事,加上我对JSON做错了,但我现在有效了。有没有更好的方法来做到这一点?

这是js

 $(document).on('change', 'input[name="design"]', function(){

    var val = $(this).val();

    $.ajax({
        type: 'POST',
        url: 'ajax/getdesign.php',
        data: {'val':val},
        dataType: 'json',
        success: function(result){
            $('.pagepreview').html(result['thedesign']);
            $('.design-options').html(result['theoptions']);
        }
    });
});

这是php

<?php
header('Content-Type: application/json');

if($_REQUEST){
    $design = $_REQUEST['val'];

    if($design == '1'){

        $response['thedesign'] = '
            <div class="d1-header"></div>
            <div class="d1-sidebar"></div>
            <div class="d1-content"></div>';

        $response['theoptions'] = '
            <label>Header Color</label> <input type="color" id="header-color" />
            <label>Header Image</label> <input type="file" id="header-image" />';

    } else if($design == '2'){
        $response['thedesign'] = '
            design 2';

        $response['theoptions'] = '
            options 2';

    } else if($design == '3'){
        $response['thedesign'] = '
            design 3';

        $response['theoptions'] = '
            options 3';
    } else {
        echo "failed";
    }

    echo json_encode($response);

}
?>