Ответ 1
Я чувствую, что вы должны остановить форму submit:
$('form').on('submit', function(e) { // <-----add arg to get the event as e.
e.preventDefault(); //<----add this to stop the form submission
console.log("the form has beeen submitted");
// grab values
valueOne = $('input[name="perfid"]').val();
valueTwo = $('input[name="hostname"]').val();
valueThree = $('input[name="iteration"]').val();
console.log(valueOne)
console.log(valueTwo)
console.log(valueThree)
$.ajax({
type: "POST",
url: "/",
datatype: 'json',
data: {
'first': valueOne,
'second': valueTwo,
'third': valueThree
},
success: function(data) { //<----this confused so change it to "data"
var res = data.result.sectoutput.summarystats.Avg.Exempt;
var p = '<p><pre>'+res+'</pre></p>';
$('#result').append(p); // now append the Exempts here.
},
error: function(error) {
console.log(error)
}
});
});
Потому что, если вы этого не сделаете, форма будет отправлена и страница обновится, а данные из ajax не будут отражены.
Обновление:
Я предполагаю, что проблема здесь:
success: function(data) { //<----this confused so change it to "data"
var res = data.result.sectoutput.summarystats.Avg.Exempt;
var p = '<p><pre>'+res+'</pre></p>';
$('#result').append(p); // now append the Exempts here.
},
Самая запутанная часть кода заключалась в использовании ключа result
. Лучше иметь другое имя в обратном вызове успеха, поскольку я использовал data
, который обозначает данные ответа от ajax, который является объектом. Поэтому нам просто нужно настроить таргетинг, например:
var res = data.result.sectoutput.summarystats.Avg.Exempt;