-1

値の配列があり、属性に挿入できるようにJSONに変換しました(これを行う他の方法はわかりません)。

<div data-categories="[[{"id":"4123","name":"Sushi Restaurant","pluralName":"Sushi Restaurants","shortName":"Sushi"}]]">
</div>

それがどうなるかですが、この単純なJSONの代わりにもっと多くの値があるかもしれません

[
  [
     {"id":"4123","name":"Sushi Restaurant","pluralName":"Sushi Restaurants","shortName":"Sushi"},
     {"id":"5555","name":"More","pluralName":"More","shortName":"More"}
  ]
]

上記のように。

現在、ajaxを使用したJSONを別のファイルに渡すのに問題があります。

var cats = $('div').data('categories');
alert(cats); // this alerts object object
var categories = "cats="+cats;
$.ajax({ //json data for categories
    url: 'saving.php',
    type: 'post',
    dataType: 'json',
    data: categories
}).done(function(data){
    alert(data); //this does not get alerted
});

このデータでやりたいのは、それをmysqlに渡すことなので、特定のデータを使用できるように、最終的にjson_decodeしたいと思います。

if(isset($_POST['cats'])){
// It doesnt' even pass through here?
}
4

3 に答える 3

1

これを試して:

var cats = $('div').data('categories');
alert(cats); // this alerts object object

$.ajax({ //json data for categories
    url: 'saving.php',
    type: 'post',
    dataType: 'json',
    data: {
        cats : cats
        },
    }).done(function(data){
    alert(data); //this does not get alerted
});
于 2013-02-22T23:14:00.537 に答える
1

二重引用符の代わりに一重引用符を使用します。

<div data-categories='[[{"id":"4123","name":"Sushi Restaurant","pluralName":"Sushi Restaurants","shortName":"Sushi"}]]'>
</div>

また、オブジェクトを文字列と連結することはできません。値は次のようになります。

"cats=[object Object]"

POSTメソッドを使用しているため、次のようにコーディングする必要があります。

data: {
    cats: cats
}
于 2013-02-22T23:17:43.133 に答える
0

それが警告されていない場合は、何も返されません。これは、サーバーエラーが原因である可能性があります。ブラウザでコンソールを開いて、AJAX呼び出しに問題がないかどうかを確認することをお勧めします

于 2013-02-22T23:13:17.130 に答える