Я уже около недели изучаю PHP, jQuery и AJAX и быстро набираю. Я создаю новый видео-сайт с системой комментариев, в которой мне нужна небольшая помощь. На сайте представлен список видеоминиатюр, и когда пользователь нажимает на миниатюру, JQuery автоматически изменяет HTML на этой странице, чтобы показать правильное видео:
$(".thumbnailcontainer img").click(function() {
var yt_vid = $(this).attr("id");
$("#youtube").fadeOut(300, function() {
//$("#content").append('<img src="img/design/icons/loading.gif" alt="Currently Loading" id="loading" class="loading" />');
$("#youtube").replaceWith('<object id="youtube" type="application/x-shockwave-flash" style="width:640px; height:385px; display:none;" data="http://www.youtube.com/v/' + yt_vid + '&hl=en_US&fs=1&hd=1"><param name="movie" value="http://www.youtube.com/v/' + yt_vid + '&hl=en_US&fs=1&hd=1" /><param wmode="transparent"><\/param><\/object>');
/*$("#loading").fadeOut(500, function() {
$(this).remove();
});*/
$('#youtube').fadeIn(1000);
});
(я временно закомментировать значок загрузки, потому что im'm пытаясь понять, как отображать его поверх видео на YouTube, а не подталкивать его под ним ... если вы можете ответить на этот вопрос, бонусные очки для вас.)
В любом случае, в зависимости от того, какое видео отображается, я необходимо, чтобы комментарии, связанные с этим видео, отображались снизу. Я хотел комментарии динамически изменять OnClick, а также, так что я создал этот код:
//Send POST data to PHP script to switch to correct comments
//Select Thumbnail's second parent's ID attr on click
var commentsID = $(this).parents("div:eq(1)").attr("id");
$.ajax({
url: 'php/comments.inc.php',
type: 'POST',
data: 'commentsID=' + commentsID,
success: function(html) {
$('#comments').html(html);
$("#db").attr("value", '' + commentsID + '');
}
});
});
Это по существу захватывает имя таблицы MySQL из атрибута ид миниатюры, постов в скрипт, который возвращает правильные комментарии и наборы значение скрытой формы, которое сообщит форме, в которую помещается столбец.
Чтобы определить последнее добавленное видео и вернуть правильные комментарии, я решил отправить сообщение ajax с идентификатором таблицы первого эскиза на загрузку документа на скрипт и добавить возвращаемые комментарии и сформировать скрытое значение устанавливается через ajax.
Мой вопрос - это вышеприведенная практика - плохая идея? То есть, мне кажется, неэффективно делать так много сообщений, чтобы переключиться на правильные комментарии - разве это не то, что является ресурсоемким? Кроме того, безопасно ли иметь имена таблиц базы данных, которые можно легко увидеть в атрибуте id моих миниатюр, чтобы мой скрипт мог указать, к какой базе данных подключиться?
Спасибо за вашу помощь и любые предложения по пути. Это мой первый пост здесь, и он кажется очень полезным веб-сайтом.
Dave, когда вы говорите, что имя таблицы 'commentsID' является строкой, а не идентификатором? –
Да, имя переменной немного вводит в заблуждение. Переменная на самом деле задана именем таблицы, а затем отправлена в скрипт, чтобы сообщить ей, в какую таблицу искать. Безопасно ли иметь имена таблиц общедоступными? –