Я создаю веб-приложение, которое позволит пользователям следить за темами обсуждения, в Q & Формат. С этой целью при отображении вопросов у меня есть кнопка «Следить» рядом с каждым вопросом. Я хочу, чтобы пользователи могли следить за этими потоками без перезагрузки страницы, используя, таким образом, AJAX. Итак, я хочу позвонить AJAX:Отправка формы через AJAX с помощью CodeIgniter
1) Отправить форму, обновляющую базу данных, записывающую следующие отношения; и 2) Заменить «Follow» кнопку отправки с «После»
Вот мой код JavaScript:
$("#submitFollow").click(function() {
var type = $("input#type").val();
var u_id = $("input#u_id").val();
var e_id = $("input#e_id").val();
var dataString = 'type='+ type + '&u_id=' + u_id + '&e_id=' + e_id;
$.ajax({
type: "POST",
url: "<?=site_url()?>/follow/ajaxFollow",
data: dataString,
success: function() {
$('#following').html("Following");
.hide()
.fadeIn(1500)
}
});
return false;
});
});
Вот что моя форма выглядит код. Я удалил действие и метод, чтобы сохранить форму от отправки себя регулярно. Я пытался предотвратить Default с помощью JS, но это не сработало. (Значения заполняются модель):
<div id="following">
<form id="followForm" action="" method="">
<input type="hidden" name="type" id="type" value="question">
<input type="hidden" name="u_id" id="u_id" value="1">
<input type="hidden" value="12" name="e_id" id="e_id">
<input type="submit" id="submitFollow" value="Follow Question" class="submitFollow">
</form>
</div>
Сейчас контроллер довольно просто - он просто принимает массив почтовых переменных и направляет их прямо в базу данных.
Я не слишком хорошо разбираюсь в JavaScript, поэтому извиняюсь, если я занимаю ваше время с простой проблемой.
Мне очень нравится это решение, но я не могу получить event.preventDefault(), чтобы что-либо сделать для моего сайта. Запись добавляется в базу данных просто отлично, но ссылка работает, нет Ajax. Я установил jquery и использовал его для других вещей просто отлично, но я не могу остановить действие по умолчанию для любых форм или ссылок. Ввод в ложь; тоже ничего не делает. Какие-либо предложения? – tchaymore
Ну, я не уверен, что на самом деле это сделал, но я, наконец, получил его на работу. Я заменил event.preventDefault() с возвратом false и переместил его в конец функции. Все идет нормально. – tchaymore