2017-10-31 3 views
-1

ユーザーがドロップダウンメニューからオプションを選択したときに、バックエンドからデータを取得するためにAJAXリクエストを使用します。javascriptでのAjaxレスポンスへのアクセス

$('#adSpace').change(function() { 
     var sel_opt = $(this).val(); 

     alert(sel_opt); 

     var location = null; 
     var width = null; 
     var height = null; 

     $.ajax({ 
      type: "GET", 
      dataType: 'json', 
      url: "advertisements-controller.php", 
      data: { 
       action: "getDimension", 
       location: sel_opt 
      }, 
      success: function (response) { 

       location = response.banner_location; 
       alert(location); 


      }, 
      error: function (xhr) { 
       alert("error"); 
      } 
     }); 

     }); 

今、私は以下のようなJSON形式のバックエンドからデータを取得しています:

[{"banner_location":"category_group_sidebar","banner_width":250,"banner_height":225}] 

私はjavascriptの変数にそれらを割り当てることによってbanner_locationbanner_widthbanner_heightの値にアクセスしたいが、私は」それをやっていない。 アイデア[...]:この

location = response[0].banner_location; 
+0

あなたは間違った場所に 'location'を宣言しています。 'success'コールバックの中で宣言する必要があります。 – Tomalak

答えて

1

使用。つまり、インデックスを使用して最初の配列項目にアクセスできます。また、複数のオブジェクトがある場合はresponseforEachまたはjQueryのeach$(response).each)と繰り返すことができます。

response[0].banner_location 
1

あなたの応答は、アレイの形で来る

+1

うん、私はそれを逃したようだった。 は、今私が使用してメッセージを表示したい: (sel_opt == 'category_sidebar')であれば{ $( '#メッセージ')( '+幅+ * +高さ+寸法を

で画像を選択して

してください')のhtml;。 } アイデアを贈ることはできますか? – jsb1001

0

は、jsonの配列です。 jsonにアクセスするには、配列のインデックスにfirsrアクセス​​する必要があります。これはarray[indexNumber]で行い、jsonのキーです。 あなたの場合はresponse[0].banner_location

+0

JSON配列やJSONオブジェクトのようなものはありません。配列とオブジェクトがあります。 JSONは文字列です。 – Tomalak

関連する問題