在php中解码json数组的问题

时间:2014-03-04 19:09:08

标签: javascript php jquery json

好的,现在我在这里遇到了一个奇怪的问题,有时回来我学会了如何在stackoverflow上正确编码和解码json数组但现在我在我的godaddy服务器上有一个奇怪的问题,我无法理解,也许我可能有在代码的某个地方写了一个错误或者某些东西,但老实说我不知道​​这里有什么问题。代码在我的本地主机上运行正常,但在我上传它的godaddy服务器时却没有。

这里的代码基本上应该将一个id作为json传递给php服务器,然后该服务器应该使用id作为参数来执行查询。

这是jquery代码:

<script text="text/javascript">
    $(document).ready(function() {
        $('#download').click(function(e) {
            // e.preventDefault();
            var tid = $('#id').val().trim();

            var data = {
                ID:tid
            };
            $.ajax({
                type: "POST",
                url: "xxxxx-xxxxxxx.php",
                data: {
                    data: JSON.stringify(data)
                },
                dataType: "json",
                success: function(response) {

                }
            });
        });
    });
</script>

这是php代码:

<?php
    if (isset($_POST['data']))
    {   
        $Data = $_POST["data"];
        $arr = json_decode($Data);
        $id = $arr->ID;

        $sql = $pdo->prepare("update ********** set ******** = ******** + 1 where id=:id");
        $sql->bindValue("id", $id, PDO::PARAM_INT);
        $sql->execute();

        unset($_POST['data']);
    }
?>

现在我检查了是否使用我的浏览器控制台将值发送到服务器了。我还检查了服务器上的$ _POST ['data']是否包含使用var_dump的任何数据,并且它确实拥有我想要的数据。

1 个答案:

答案 0 :(得分:0)

ajax中的

将内容类型设置为contentType: "application/json",

这样:

 $.ajax({
            type: "POST",
            url: "xxxxx-xxxxxxx.php",
            data: {
                data: JSON.stringify(data)
            },
            contentType: "application/json",
            success: function(response) {

            }
        });

并在php中使用:

$json = file_get_contents('php://input');
$data = json_decode($json);