0

このスクリプトを使用して、ajax リクエストと json レスポンスに基づいてテーブル セルを更新します。指定した表セルを更新しないこと。私のjson文字列は正しくフォーマットされていませんか?

$(document).ready(function() {

    $('select.swcomp').change(function () {
        var res_id = $(this).val();
        var index = $(this).data('index');

        $.ajax({
            type: 'POST',
            url:'http://skiweather.eu/v3/ajax/compare_snow.php',
            data: '{ "res_id":"' + res_id + '", "index":"' + index + '" }',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (response) {
                $('#destin_' + index).html(response.resort);               
                $('#snowval_' + index).html(response.snow_valley);
                $('#snowmnt_' + index).html(response.snow_mountain);            
            }
        });
        return false;
    });

});

html

 <select name="resort_1" class="swcomp" data-index="1">
                    <option value="NoResort">resorts</option>
                    <option value="6">Adelboden</option>
                    <option value="237">Davos</option>
</select>

<table>
    <tr><td id="destin_1">res</td></tr>
    <tr><td id="snowval_1">val</td></tr>
    <tr><td id="snowmnt_1">mnt</td></tr>
</table>   

json

var response =[{"snow_valley":"40","snow_mountain":"40","resort":"Adelboden"}]
4

2 に答える 2

2

応答はオブジェクトではなく、配列であるため、response.resort未定義である必要がありますresponse[0].resort

$('#destin_' + index).html(response[0].resort);               
$('#snowval_' + index).html(response[0].snow_valley);
$('#snowmnt_' + index).html(response[0].snow_mountain); 
于 2013-11-03T08:54:11.037 に答える
0

はい、受信したjsonは正しくフォーマットされています。このサイトhttp://jsonlint.com/に従って、json ファームマットを正しく確認したい場合は、json の検証を確認します。json データhttp://jsontree.com/にアクセスするには、json を貼り付けて解析するだけで、データに簡単にアクセスできます

于 2013-11-03T09:03:41.270 に答える