2

在我的本地机器中,我正在尝试将数据从 json 保存到我的 mysql 数据库中,我正在使用 Wampserver。

在我的 html 页面(saveInfo.php)中,我有这个 jquery 代码:

<script type="text/javascript">
            var jsObj = {"user_id":5, "login":"hsm"};
            var jsonobj = JSON.stringify(jsObj);            
            $.ajax({  
                type: "POST",  
                url: "json_handler.php",  
                data: { 'jsonobj':jsonobj },      
                success: function(){  
                  alert('success');
                  window.location = "http://localhost/quranMapping/php/json_handler.php";
                } 
            });
</script>

另一方面,我有这样的服务器端 php 代码 ( json_handler.php):

<?php

$input = file_get_contents('php://input');
$input = $_POST['jsonobj'];

$result = json_decode($input);

echo $result->user_id;

?>

但是当我运行该代码时,我得到了这个错误: 在此处输入图像描述

4

1 回答 1

3

你应该删除这个:

var jsonobj = JSON.stringify(jsObj); 

和改变

data: { 'jsonobj':jsonobj }, 

data: jsObj, 

在 php 端解码数据只是使用

$user_id = isset($_POST["user_id"])?$_POST["user_id"]:"";
$login   = isset($_POST["login"])?$_POST["login"]:"";

也没有必要做

$input = file_get_contents('php://input');

由于表单与对象一起作为数据发布,application/x-www-form-urlencoded因此该值将不是有效的 json。

于 2013-08-02T17:48:08.477 回答