У меня есть форма с двумя полями ввода. Песня и художник. Когда кнопка поиска нажата, она использует функцию JQuery .post()
чтобы отправить данные на страницу PHP и вернуть результаты на страницу.
Вот мой код JavaScript:
<script>
$(function() {
$("#submitSearch").bind("click", function() {
var songTitle = $("#song").val();
var artistName = $("#artist").val();
$.post("getSearchResults.php", {
artist: artistName,
song: songTitle
},
function( data, status ) {
$("#searchResults tbody").last().append( data );
});
});
});
</script>
Цель состоит в том, чтобы поместить результаты в <tbody>
таблицы "searchResults".
<table id="searchResults">
<thead>
<tr>
<th>Title</th>
<th>Artist</th>
<th>Album</th>
<th>Add To List</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
Однако, похоже, он не вставляет результаты в таблицу.
Это не до тех пор, пока я не поставлю сообщение alert()
в Javascript Code, которое оно покажет.
<script>
$(function() {
$("#submitSearch").bind("click", function() {
var songTitle = $("#song").val();
var artistName = $("#artist").val();
$.post("getSearchResults.php", {
artist: artistName,
song: songTitle
},
function( data, status ) {
$("#searchResults tbody").last().append( data );
});
alert("test");
});
});
</script>
Когда я увольняю предупреждение "тест", он помещает результаты в таблицу и очень быстро исчезает.
Что мне здесь не хватает? Пожалуйста, помогите мне! Я в тупике. Заранее спасибо.
Попробуй это...
<script>
$(function() {
$("#submitSearch").bind("click", function(e) {
e.preventDefault();
var songTitle = $("#song").val();
var artistName = $("#artist").val();
$.post("getSearchResults.php", {
artist: artistName,
song: songTitle
},
function( data, status ) {
$("#searchResults tbody").last().append( data );
});
});
});
</script>
Я добавил параметр события в функцию щелчка и e.preventDefault()
. это останавливает отправку на самом деле, которая перезагружает вашу страницу. Кроме того, в зависимости от того, какую версию jQuery вы используете, вы можете использовать on()
вместо bind()
. (Это точно такой же синтаксис, как указано выше).
<form>
, так что это имеет смысл.