SYMFONY 3を使用していますが、AJAXを使用して受信したJSONをコントローラから解析する必要があり、JSONを正しく読み取ることができず、以下の私のコード:AJAXレスポンスを使用してJSONオブジェクトを解析してhtmlテーブルに変換します
コントローラー:
$em = $this->getDoctrine()->getManager();
$RAW_QUERY = 'SELECT id,DO_Date,DL_Design,DL_Qte,DL_MontantHT,DL_MontantTTC FROM `facture_ligne` WHERE facture_id=:id';
$statement = $em->getConnection()->prepare($RAW_QUERY);
// Set parameters
$statement->bindValue('id', $id);
$statement->execute();
$facture = $statement->fetchAll();
$serializer = $this->container->get('jms_serializer');
$reports = $serializer->serialize($facture,'json');
return new Response($reports);
マイスクリプト小枝ファイル内:
function detailfacture{{ fact.id }} (id) {
var z= new XMLHttpRequest();
z.open("get","{{ path('Ajaxonify',{'id':fact.id}) }})",true);
z.send()
z.onreadystatechange = function result() {
var json=z.responseText;
if(json!="")
{
alert(json);
var tr;
for (var i = 0; i < json.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + json[1].DL_MontantHT + "</td>");
tr.append("<td>" + json[1].DO_Date + "</td>");
tr.append("<td>" + json[1].DL_Qte + "</td>");
$('#tb').append(tr);
}
}
else alert("helo");
}
}
私は、静的なJSONでテストされ、あなただけ読みたい場合には、これは何
console.log(data);
console.log(json);
戻り
アラートは[オブジェクト] [オブジェクト]を返す前にjsonはすでにコントローラで解析されています –
私は完全な例で答えを更新しました。 'alert'がJSONテキストを表示する場合、JSONはまだ解析されておらず、オブジェクトでもありません。 –
また、ハードコードされた '1'の代わりに' i'変数を使用する 'tr.append()'呼び出しで行を更新しました。 –