Как получить доступ к элементам массива в ответ ajax, полученный от PHP?

Код jQuery функции ajax выглядит следующим образом:

$(document).ready(function() {
$("#zip_code").keyup(function() {
var el = $(this);
var module_url = $('#module_url').val();

if (el.val().length === 5) {
$.ajax({
url : module_url,
cache: false,
dataType: "json",
type: "GET",
data: {
'request_type':'ajax',
'op':'get_city_state',
'zip_code' : el.val()
},
success: function(result, success) { alert(result.join('\n'));
$("#city").val(result.place_name);
$("#state_code").val(result.state_code);
}
});
}
});
});

Фрагмент кода PHP выглядит следующим образом:

case "get_city_state":

// to get the city and state on zip code.
$ret = $objUserLogin->GetCityState($request);

if(!$ret) {
$error_msg = $objUserLogin->GetAllErrors();
list($data) = prepare_response($request);
$smarty->assign('data', $data);
} else {
$data = $objUserLogin->GetResponse();

echo $data;
}

die;
break;

В PHP-коде $ data содержит данные следующим образом:

<pre>Array
(
[id] => 23212
[zip_code] => 28445
[place_name] => Holly Ridge
[state_code] => NC
[created_at] => 1410875971
[updated_at] => 1410875971
)
</pre>

Из приведенных выше данных (т. Е. Ответ, который будет доступен в переменной, вы получите ответ ajax), я хочу получить доступ только к двум полям place_name и state_code.

Я попытался распечатать содержимое переменной результата, используя alert(result) в консоли, но я понимаю Array

Как этого добиться — мое сомнение?

Заранее спасибо.

0

Решение

Вы должны закодировать свой результат в JSON. Так что вместо заявления echo $data

использование

echo json_encode($data);

он вернет ваш результат в формате JSON. лайк

{"id":23212,"place_name":"Holly Ridge"...}

и в вашем JavaScript вы можете получить доступ к вашим данным

2

Другие решения

Других решений пока нет …