2010-11-27 2 views
0

Я очень новичок в AJAX и Javascript и нуждаюсь в некоторой помощи с этим кодом.Отображение JSON в блоках ввода HTML с использованием AJAX?

Вот немного JSON Я использую

{"URL":"www.youtube.com","Total URLs":132,"Completed":63} 

Мне нужно, чтобы каждый из этих значений и отображение в различных HTML ввода текстовых полей с помощью AJAX.

Current URL: <input type="text" name="urlqueue"> 
Total URLs: <input type="text" name="total"> 
Completed: <input type="text" name="completed"> 

Сейчас у меня есть

ajaxRequest.onreadystatechange = function(){ 
    if(ajaxRequest.readyState == 4){ 
    document.form.total.value = ajaxRequest.responseText; 
    } 
} 
ajaxRequest.open("GET", "test_results.php", true); 
ajaxRequest.send(null); 

Вы можете увидеть это больше не работает. Я использую файл, содержащий только 1 номер и не JSON. Теперь мне нужно использовать файл для многих результатов с JSON и нужно какое-то направление.

Как отобразить JSON в полях ввода HTML с помощью AJAX?

+1

Считаете ли вы использование структуры? (jQuery, yui и т. д.) – dana 2010-11-27 23:26:54

ответ

0

Разберите JSON, используя библиотеку разбора JSON или используя eval. Обратите внимание, что использование eval может быть очень опасным, так как вы можете использовать уязвимости межсайтового скриптинга, если они используются неправильно.

Полученный объект будет иметь значения, так что вы можете установить каждое поле в отдельности, например:

document.form.total.value = jsonObject["Total URLs"]; 
+0

Хмм, я не совсем уверен, как разбирать JSON без eval. – Chenelle 2010-11-28 00:25:36

0

Обратите внимание, что когда вы делаете AJAX и получить ответ, текст ответа не JavaScript объект , Это просто строка, поэтому вы должны оценить строку для объекта JavaScript. Следующий код даст это быстро. Но Дуглас Крокфорд, владеющий JavaScript, говорит, что «eval is evil».

 
var data = eval('(' + ajaxRequest.responseText + ')'); 
document.form.total.value = data[Total URLs] 

Также я хочу помнить, что избегать пробелов в именах свойств. Например, у вас должно быть свойство «Total_URLs» или «TotalURLs» и т. Д. Вместо «Всего URL-адресов»

Смежные вопросы