解析$ get参数时,jquery请求的JSON解析失败

时间:2013-07-28 06:54:46

标签: php jquery ajax json

Jquery在更改以下行之前正在工作

data: "ID=1",

$ID=$_GET["ID"]
$array=array("$ID",'B',"C");

来自

data: "",

$array=array('A','B',"C");

我的ajax文件

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

    <button class="ajax_action">click</button>
    <script>
    $('button.ajax_action').on('click', function (e) {
        e.preventDefault();
        var target = $(this);
        $.ajax({
            url: "test.php",
            data: "ID=1",
            type: 'POST', 
            dataType: 'json',
            success: function (data) {
                var name=data[0];
                target.html(name);
                target.attr('disabled', 'disabled')
            },
               error: function(jqXHR, exception) {
                if (jqXHR.status === 0) {
                    alert('Not connect.\n Verify Network.');
                } else if (jqXHR.status == 404) {
                    alert('Requested page not found. [404]');
                } else if (jqXHR.status == 500) {
                    alert('Internal Server Error [500].');
                } else if (exception === 'parsererror') {
                    alert('Requested JSON parse failed.');
                } else if (exception === 'timeout') {
                    alert('Time out error.');
                } else if (exception === 'abort') {
                    alert('Ajax request aborted.');
                } else {
                    alert('Uncaught Error.\n' + jqXHR.responseText);
                }
            }
        });
    });
    </script>

php file test.php(与ajax文件相同的目录)

<?php
    $ID=$_GET["ID"]
    $array=array("$ID",'B',"C");
    echo json_encode($array);
    ?>

如何使用$ _GET [“ID”]进行此操作,我需要根据所选产品用户可变的ID执行操作


很久以前,我已阅读了手册,但对于你认识的新手来说,手册并不容易。 “你应该阅读手册,白痴”是我听过的最糟糕的答案,我可以用这句话回答我不知道的每一个问题。 @tereško

进一步更改为以下行但仍然无效,

    data: {'ID':1},
    type: 'POST', 

<?php
$ID=$_POST["ID"]
$array=array("$ID",'B',"C");
echo json_encode($array);
?>

2 个答案:

答案 0 :(得分:0)

您正在使用POST而不是GET。在test.php上,您需要将您的PHP代码更改为

<?php
 $ID=$_POST["ID"];
 $array=array("$ID",'B',"C");
 echo json_encode($array);
 ?>

答案 1 :(得分:0)

将ajax调用中的类型更改为type: 'GET'