Работа с запросом jquery в JSON, но у меня есть некоторые проблемы с доступом к моим данным.Невозможно получить доступ к моим json-данным в javascript
Мой запрос:
$(document).ready(function() {
$("#client").change(function() {
$.ajax({
type: "GET",
url: "jsonContacts.php",
data: "q="+$("#client").val(),
success: function(data){
document.form.contactClient.options.length=0;
for(var i=0; i<data.length; i++) {
document.form.contactClient.options[i]=new Option(data[i].prenom, data[i].id, false, false);
}
document.form.contactClient.options[i]=new Option("End", i, false, false);
}
});
});
});
Когда я поставил
alert(data[1].prenom);
Это дает мне неопределенными:/
Вот пример моего JSON:
[{"id":"1","prenom":"Maxime","nom":"Xnate"},{"id":"3","prenom":"Test_prenom","nom":"Test_nom"}]
Мои запрос отображает два пустых варианта s и один вариант «Конец», поэтому он отлично подходит для массива, но не может получить никаких данных.
Итак, вы имеете представление о доступе к данным?
Благодаря
EDIT:
Моя JSON кодирования
$json = array();
while($contact = $requeteContact->fetch()) {
array_push($json, array("id" => $contact['idContact'],
"prenom" => $contact['CTC_Prenom'],
"nom" => $contact['CTC_Nom']));
}
echo json_encode($json);
работы:
$(document).ready(function() {
$("#client").blur(function() {
$.ajax({
type: "GET",
url: "jsonContacts.php",
data: "q="+$("#client").val(),
success: function(data){
document.form.contactClient.options.length=0;
for(var i=0; i<data.length; i++) {
document.form.contactClient.options[i]=new Option(data[i].prenom + " " + data[i].nom, data[i].id, false, false);
}
document.form.contactClient.options[i]=new Option("End", i, false, false);
}
});
});
});
Вы уверены, что данные вернутся в указанном выше формате? – Kushal
Используйте 'dataType:" json "или" jsonp "для запросов с кросс-началом для получения истинного ответа JSON. –
ну, вот что он дает мне, когда я перехожу вручную в jsonContacts.php? Q = Actemium по крайней мере – xNeyte