Javascript 给图像评级

Javascript 给图像评级,javascript,php,jquery,sql,ajax,Javascript,Php,Jquery,Sql,Ajax,我正在做一个教程,你可以上传图像和信息的图像到网站上。 图像将保存到文件夹中,而信息将存储在数据库中 它还有一个函数,可以创建每个上传图像的缩略图。在这个缩略图旁边,您将找到存储在数据库中的上传图像的信息 现在我想对它进行一些改进,并在其中添加一个评级系统。 我已经创建了一个评级系统,根据点击的星像,发送一个数字1-5,并将其存储在一个txt文件中 所以我的问题是,什么是最简单的方式连接到每个图像的评级? 我希望评级显示在缩略图旁边,就像图像信息一样 编辑: 图像上载: <div id="

我正在做一个教程,你可以上传图像和信息的图像到网站上。 图像将保存到文件夹中,而信息将存储在数据库中

它还有一个函数,可以创建每个上传图像的缩略图。在这个缩略图旁边,您将找到存储在数据库中的上传图像的信息

现在我想对它进行一些改进,并在其中添加一个评级系统。 我已经创建了一个评级系统,根据点击的星像,发送一个数字1-5,并将其存储在一个txt文件中

所以我的问题是,什么是最简单的方式连接到每个图像的评级? 我希望评级显示在缩略图旁边,就像图像信息一样

编辑: 图像上载:

<div id="uploadform">
                <form action="laddaupp.php" method="post" enctype="multipart/form-data">
                    <input type="hidden" name="MAX_FILE_SIZE" value="500000" />
                    <label for="file"><strong>Filename:</strong></label>
                    <input type="file" name="file" id="file" />
                    <input type="text" name="uppladdare" placeholder="Uploader:" title="What's your name?"/>
                    <input type="text" name="titel" placeholder="Title" title="Give a title to your piece of work"/>
                    <input type="text" name="history" placeholder="History" title="Tell us the story behind your image. Where is it taken, etc."/>
                    <input type="submit" name="submit" value="Upload" />    
                </form>
星级:

<form name="rating" id="rating">    
    <div id="rating-area" class="shadow">   

    <img src="stjärna.png" id="thumb1" data-value="1" />
    <img src="stjärna.png" id="thumb2" data-value="2" />
    <img src="stjärna.png" id="thumb3" data-value="3" />
    <img src="stjärna.png" id="thumb4" data-value="4" />
    <img src="stjärna.png" id="thumb5" data-value="5" />

    </div>


</form>
<!--Skickar information till textfilen när man klickar på en stjärna-->
<script>
    jQuery('div#rating-area img').click(function(e){
        var val = jQuery(this).data('value') ;
        console.log(val) ;
        jQuery.post('post.php',{ rating : val },function(data,status){
            console.log('data:'+data+'/status'+status) ;
        }) ;
    }) ;

</script>

您可以在数据库上创建另一个表,该表与您当前的i-sike图像表相关。比方说成像率

因为您以1-5的速率发送值,所以可以通过这种方式构建表

表成像率

每个投票/比率将是ImageRate中的一行,具有自动增量ID、比率值和作为外键的ImageID,该外键是表映像的主键

因此,当用户对图像进行评级时,您必须以以下方式插入此表:

插入ImageRateID、RATE、ImageID值ll、、

第一个在哪里?是速率值还是第二个?已分级的映像id

然后,要获得图像的有效速率,您只需执行以下操作

从imagerate中选择AVGrate,其中ImageID=50


这是做你需要的事情的基本方法。但是,该表可以扩展为几个更有用的列,例如时间戳、用户id,以防止用户可以投票两次,等等。。。你需要根据你的具体情况来考虑所有这些事情。

< P>最简单的方法是把选票存储在数据库中。您可以通过图像的ID将它们连接到图像

你必须考虑一些事情:

是否要阻止来自唯一用户的多个投票?->如果是,则必须单独存储所有投票 你只需要选票的平均值吗如果其他人是和否,您可以存储计票和积分总和。平均值将为点数/计数 您想查看趋势吗?-如果是,则应单独存储所有投票,并为每次投票设置时间戳。
就我个人而言,我不建议将投票存储在文本文件中!例如,有太多的问题需要解决。

为什么不将其与图像信息一起存储在数据库中。但我不知道如何做到这一点。马上编辑第一篇文章。更新后,添加了一些代码,切换到数据库,为什么是50?我用图像投票。那么图像ID1:Rate1 ID:1?像那样?50只是一个虚拟的ImageID值。ID、RATE和ImageID是表中的列。一次声明为表结构。
<form name="rating" id="rating">    
    <div id="rating-area" class="shadow">   

    <img src="stjärna.png" id="thumb1" data-value="1" />
    <img src="stjärna.png" id="thumb2" data-value="2" />
    <img src="stjärna.png" id="thumb3" data-value="3" />
    <img src="stjärna.png" id="thumb4" data-value="4" />
    <img src="stjärna.png" id="thumb5" data-value="5" />

    </div>


</form>
<!--Skickar information till textfilen när man klickar på en stjärna-->
<script>
    jQuery('div#rating-area img').click(function(e){
        var val = jQuery(this).data('value') ;
        console.log(val) ;
        jQuery.post('post.php',{ rating : val },function(data,status){
            console.log('data:'+data+'/status'+status) ;
        }) ;
    }) ;

</script>
ID    Rate    ImageID (FK)
1     3       50
2     5       50
3     2       50