Редактировать: Исходя из вашего комментария, я предполагаю, что ваша проблема является чисто одностраничной.
Возможно, проблема с этим кодом связана с тем, что вы пытаетесь использовать .append () с функцией (которая является допустимой jQuery), но эта функция не возвращает ничего, что jQuery может добавить к узлу 'stuff'; $. Post выполняет Ajax-вызов, который немедленно возвращается.
Вместо этого попробуйте что-то вроде следующего (при необходимости изменив URL-адрес Ajax-вызова):
$.post("url/to/post/to", {},
function(data) {
$("#stuff").empty(); //Clear your stuff div
var children = data.childrendata; //jQuery automatically unserializes json
if(children.length == 0) {
$("#stuff").append("No relations registered.");
}
else {
$('#stuff').append('<select id="child_list"></select>');
$.each(children,
function(index, value) {
//Append each option to the selectbox
$("#child_list").append("<option value='" + value.fName + "'>" + value.lName + "</option>");
}
);
}
},
'json'
);
$. Each () - это общий итератор jQuery, который помогает снять загромождение кода.
Для этого нужно сделать Ajax-публикацию на предоставленный URL-адрес, который отвечает сериализованным объектом json.Обратный вызов принимает этот ответ (который jQuery уже сам не сериализовал), добавляет новый выбор в div '#stuff', а затем добавляет динамически созданные опции к новому select.
Примечание: Мои извинениячтобы не публиковать ссылку на документацию $ .each, StackOverflow в настоящее время позволяет публиковать только 2 гиперссылки в одном сообщении.