#javascript #jquery #html #css #ajax
#javascript #jquery #HTML #css #ajax
Вопрос:
Я отправляю html-форму через AJAX, а затем добавляю результаты к определенному элементу div.Соответствующий ajax :-
$(document).ready(function(){
$('.commentbutton').click(function(){
var idb=$(this).attr('id');
var formid=$('#Comment' idb);
datab=getFormData(formid);
$.ajax({
type:"POST",
url:'/submit/channelcomment',
data:datab,
success:function(data){
console.log(data.content);
console.log(data.profile);
var html="<div class='CommentRow'><a href='/Channel/" data.profile "/'style='font-weight: bolder;margin-right: 10px;display: inline-block;'>" data.profile "</a>" data.content "</div>"
console.log('Done');
idt=$('#CommentBody' idb);
console.log(idt);
idt.append(html);
},
}),
event.preventDefault();
});
});
function getFormData($form){
var unindexed_array = $form.serializeArray();
var indexed_array = {};
$.map(unindexed_array, function(n, i){
indexed_array[n['name']] = n['value'];
});
return indexed_array;
}
Желаемая позиция, в которой я пытаюсь добавить html, выглядит следующим образом:-
<div class="CommentBody" id="CommentBody{{c.id}}">
</div>
Здесь c.id и idb равно 1. Но это не добавление html.
Ответ №1:
Когда вы говорите
Но это не добавление html.
Каково фактическое поведение?
Я попробовал фиктивный код, как показано ниже, и он работает нормально.
$(document).ready(function() {
$('.commentbutton').click(function() {
var html = "<div class='CommentRow'><a href='/Channel/data.profile/'style='font-weight: bolder;margin-right: 10px;display: inline-block;'>data.profile</a>data.content</div>"
var idb = '1';
idt = $('#CommentBody' idb);
alert(idt);
idt.append(html);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class='commentbutton'>Comment</button>
<div class="CommentBody" id="CommentBody1">
</div>
Комментарии:
1. Здесь data.content — это ответ json, возвращаемый сервером через ajax. Но я не думаю, что ваш html покажет этот ответ. Вместо этого он покажет «data.content», а не значение «data.content
2. Правильно.. Я только что ввел фиктивные значения-заполнители в свой ответ, чтобы показать, что он добавляется к <div> . Вы всегда можете заменить фиктивные данные реальными данными.