Я работаю с ajax, jquery и php; Я отправляю ajax-запрос на php через почту, например:
function obtenermail() {
//console.log($('#destinatario').val());
var ced = $('#destinatario').val();
$.ajax({
type: "POST",
data: { 'cedula': $('#destinatario').val()},
url: "<?php echo site_url();?>"+"/roles/obtenercorreo",
success : function(data) {
console.log(data);
}
});
}
в php у меня есть следующая функция:
public function obtenercorreo(){
if($this->session->userdata('logueado')){
$ced = $this->input->post('cedula');
$data = $this->persona_model->getPersonaced($ced);
echo json_encode($data);
}else{
redirect('','refresh');
}
}
Запрос работает правильно, он показывает мне расстановку следующим образом:
[{"cedula":"1100253986","nombres":"SOTO CASTILLO LAURO HERNAN","mod_laboral":"CONTRATO COLECTIVO","email":""}]
Чего я не знаю, так это как получить каждое значение отдельно, так как если я поставлю
console.log(data[0])
console.log(data.cedula)
console.log(data['cedula'])
возвращает мне undefined или пустую строку .
Мой вопрос: как я могу читать каждый отдельный элемент? то есть получить cedula или почту отдельно
Прямо сейчас он обрабатывает его как строку, вам нужно проверить/обработать эту строку как JSON (с помощью
JSON.parse
), а затем вы можете легко получить доступ к данным.Изменения в коде JavaScript будут такими:
И теперь в консоли должно появиться правильное значение ID и почты.
Несмотря на то, что у меня уже есть решение, я даю вам рекомендацию (смайлик).
Следующий код содержит вызов AJAX к нужному URL-адресу и решение, предложенное @Alvaro Montoro. Чтобы повысить практичность вашего запроса, я рекомендую вам добавить в код только 2 строки и удалить 1.
Первая добавляемая строка будет в Js, потому что вы сообщите jQuery, какой тип контента вы ожидаете (в данном случае JSON), чтобы избежать синтаксического анализа данных, потому что вы получаете их как таковые (в JSON).
Решение
Вторая строка находится на стороне сервера, она возвращает тип содержимого, содержащегося в ответе (JSON) в запросе.
Благодаря этому типу практики вы можете обнаруживать ошибки, например, когда сервер не отвечает на JSON, чтобы обрабатывать его по-другому, и в этом случае будет активирована функция ошибок AJAX .
Вы можете сохранить строку следующим образом: