Я работаю с ajax, jquery и php; я посылаю запрос ajax в php через post, следующей формы:
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 или пустая цепь.
Мой вопрос: Как он мог бы делать, чтобы читать каждый индивидуальный элемент? а именно получать долговое обязательство, или почту по отдельности
Прямо сейчас он относится к этому как будто это была цепь, ты должен санкционировать / обрабатывать эту цепь как JSON (с JSON.parse
) и тогда ты сможешь соглашаться на данные о простом способе.
Изменения в коде язык сценариев JavaScript были бы такими:
$.ajax({
type: "POST",
data: { 'cedula': $('#destinatario').val()},
url: "<?php echo site_url();?>"+"/roles/obtenercorreo",
success : function(data) {
var datos = JSON.parse(data);
console.log(datos[0].cedula);
console.log(datos[0].email);
}
});
И сейчас в консоли была бы должна появляться правильная стоимость долгового обязательства и почты.
Несмотря на уже имение решения, я даю тебе рекомендацию (carita счастливый).
Следующий код содержит призыв AJAX к унифицированному указателю ресурса, который ты желаешь, и решение, которое тебе выдвинул @Alvaro Montoro. Чтобы улучшать практику твоей просьбы, я рекомендую тебе добавлять к твоему коду только 2 линии и удалять 1.
Она первый линия, которую будет нужно добавлять, будет в Js, благодаря тому, что ты скажешь ему в jQuery, что ты ждешь тип содержимого (в этом случае JSON) так ты предотвращаешь parsear информацию благодаря тому, что ты это получаешь как таковой (в JSON).
$.ajax({
type: 'POST',
dataType: 'json',
data: { 'cedula': $('#destinatario').val() },
url: "<?php echo site_url(); ?>/roles/obtenercorreo",
success : function(data) {
console.log(data[0].cedula);
console.log(data[0].email);
}
});
Вторая линия - в стороне сервера, что он делает, состоит в том, чтобы возвращать в просьбе тип содержимого, который содержит ответ (JSON).
header('Content-Type: application/json');
echo json_encode($data);
Спасибо этот этот тип практик, ты можешь обнаруживать ошибки, как когда сервер тебе не ответит JSON, чтобы этим манипулировать различной формы, которая в вышеупомянутом случае, включила бы функцию ошибку AJAX.