Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery AJAX$\u在document.ready上发布帖子?_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Php jQuery AJAX$\u在document.ready上发布帖子?

Php jQuery AJAX$\u在document.ready上发布帖子?,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我学习PHP、jQuery和AJAX大约一周了,我学得很快。我正在建立一个新的视频网站和一个评论系统,我需要一些帮助。该站点显示视频缩略图列表,当用户单击缩略图时,jquery会自动更改该页面上的html以显示正确的视频: $(".thumbnailcontainer img").click(function() { var yt_vid = $(this).attr("id"); $("#youtube").fadeOut(300, function() {

我学习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);
    });
这实际上是从缩略图的id属性中获取MySQL表名,将其发布到一个脚本中,该脚本返回正确的注释,并设置一个隐藏的表单值,该值将告诉表单要将注释发布到哪个表

为了确定最近添加的视频并返回正确的注释,我的想法是将一篇带有文档加载时的第一个缩略图表标识符的ajax文章发送到脚本,并将返回的注释追加,并通过ajax设置表单隐藏值

我的问题是——上述做法是个坏主意吗?也就是说,对我来说,让这么多的帖子请求转换到适当的评论似乎效率低下——这不是资源密集型的事情吗?另外,让我的数据库表名在我的缩略图的id属性中随时可见,以便让我的脚本告诉要连接到哪个数据库,这样安全吗


谢谢你的帮助和建议。这是我在这里的第一篇文章,它似乎是一个非常有用的网站。

在页面加载上有一个或两个ajax请求实际上可能会加快加载时间,因为它是异步的。人们在加载时发出一些ajax请求是很常见的,这是一种让页面加载感觉更快的技术

<>你可能会考虑返回一个更标准化的数据类型。如果您以json字符串形式从注释中发回内容和元数据,您可以自己构建注释并保存大量传输(所有这些都只是重复的html标记)

一些网站采用的另一个技巧是将评论加载到视口区域。如果评论看不到(如果它们在折叠下面),那么就没有太多的理由加载它们。然后,当/如果用户向下滚动时,您可以在该点发出请求

至于flash视频的加分,您需要查看一个名为
wmode
并将其设置为
transparent
。您也可以考虑使用标准的SWF注入工具,如SWFObjor(或JQuery插件版本)来将这些视频添加到页面。

< P>您可能需要使用<代码>加载> GIF < /代码>来加载评论。显示YouTube视频的脚本将立即运行,不会有任何延迟,因为它只是将HTML注入页面。视频的实际加载与页面无关


至于
load.gif
向下推视频,你需要做一个CSS
position:absolute。这将从页面流中取出上下文图像,并允许其覆盖视频。您可以使用顶部和左侧CSS属性将图像居中定位。确保您的图像和视频是一个具有
位置:relative的容器

Dave,当你说table name
commentsID
是一个字符串,而不是一个ID?是的,变量名有点误导。该变量实际上设置为表名,然后发布到脚本中,告诉它要查看哪个表。将表名公开是安全的吗?谢谢你的回复,Alex。我将研究JSON,因为我对它一无所知。此外,在我的代码中,wmode实际上已经设置为透明,并且似乎loading.gif被覆盖在视频的.fadeOut上,但被压到了.replaceWith上。。。不确定这是由什么引起的,因为原始代码和替换的代码都有透明参数。请尝试
.after()
而不是
.append()
    //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 + '');
        }
    });
});