2016-11-03 13 views
0

テーブルにオブジェクトを保存したいと思います。javascript jquery mysqlのjsonオブジェクトを文字列として保存

私のコード:

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}; 
var ArticleNo = 373737373737; 
var objectArticleNo = {}; 
objectArticleNo['person'] = person; 
objectArticleNo['articleNo'] = ArticleNo; 

var addArticleNoToDB = function(objectArticleNo) { 

$.ajax({ 
    type: "POST", 
    url: "php/__addArticleNo.php", 
    data: {my_json_data: JSON.stringify(objectArticleNo)}, 
    dataType: "text", 
    success: function (msg, string, jpXHR) { 
    console.log(msg); 
    }, 
    error: function(xhr, desc, err) { 
    console.log(xhr); 
    console.log("Details: " + desc + "\nError:" + err); 
    } 
}); 
} 

PHP:

<?php 
$item = $_POST['my_json_data']; 
$obj = json_decode($item, true); 

$person = $obj['person']; 
$articleNom = $obj['articleNo']; 

$queryArticle = "INSERT INTO articleNo (articleNom, personAsJsonString) VALUES ($articleNom, $person)"; 

if(mysqli_query($connection, $queryArticle)) { 
    echo "yes"; 
} else { 
    echo "nope"; 
} 

オブジェクトが '配列' として保存されます。しかし、私の意向は

'{firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}' 

のような文字列は、私は再びそれを解析しなければならないのか、問題が何であるとして「person'・オブジェクトを保存するのですか?

答えて

0

json_decodeを使用するのは、まずjson文字列をデコードするからです。それはPHPの配列です。テーブルに挿入する前に、配列をjsonに再度エンコードしようとすることもできます。

$person_json = json_encode($obj['person']); 
$queryArticle = "INSERT INTO articleNo (articleNom, personAsJsonString) VALUES ({$articleNom}, '{$person_json}')"; 
0

なぜ

var person = JSON.stringify({firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}); 
var ArticleNo = 373737373737; 
var objectArticleNo = {}; 
objectArticleNo['person'] = person; 
objectArticleNo['articleNo'] = ArticleNo; 

var addArticleNoToDB = function(objectArticleNo) { 

$.ajax({ 
    type: "POST", 
    url: "php/__addArticleNo.php", 
    data: {my_json_data: JSON.stringify(objectArticleNo)}, 
    dataType: "text", 
    success: function (msg, string, jpXHR) { 
    console.log(msg); 
    }, 
    error: function(xhr, desc, err) { 
    console.log(xhr); 
    console.log("Details: " + desc + "\nError:" + err); 
    } 
}); 
} 
itself--文字列として人物オブジェクトを送信しません
関連する問題