【问题标题】:How should I accomplish my rating script我应该如何完成我的评分脚本
【发布时间】:2012-06-28 22:06:02
【问题描述】:

我的网页有一个表格,您可以在其中选择不同的项目。我希望能够让人们评价这些。我遇到了一个问题,我需要将一个 javascript 变量传递给 php,而从我在线阅读的内容来看,这并不是最简单的事情。你会如何建议我这样做?

代码存储在 98.214.131.200/index.php 和 98.214.131.200/ratings/ratings.php

目前我在 rating.php 中有允许我编写或读取评级的函数,但我需要来自 javascript 的字符串来识别正在评级的项目。

【问题讨论】:

  • 您是否根据数据库填充表(我猜是 SQL)?
  • 不,它只是用 javascript 编写的。如果打开index.php,可以看到整个表格。
  • Javascript 是客户端。你如何存储评级?使用 Javascript,它会存储在客户端浏览器中,但一旦重新加载,它就会消失。
  • 它存储在我的服务器上,一旦你运行 php 函数 submitRating($id, $rating) 它会更新一个文件,你可以使用 getRating($id) 读取值。

标签: php javascript html rating-system


【解决方案1】:

您可以使用表单中的 POST 请求传递评分。

http://www.tizag.com/phpT/forms.php/

确保正确清理输入以避免 SQL 注入

http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php

【讨论】:

    【解决方案2】:

    您可以使用 jquery,并在幕后传递信息。像这样的:

    $.ajax({
      type: 'POST',
      url: "/your/processing/url/here.php",
      data: {rating_id: item_id, rating: 4},  // <-- set this dynamically with your item
      success: function()
      {
        // do something - success
      },
      dataType: dataType
    });
    

    【讨论】:

    • 是的,这将是最好的方法。我的印象是 OP 没有太多使用 jQuery 甚至 Javascript 的经验。因此,除此之外,您还需要下载 jQuery 库并将其链接到使用它的页面。
    • 这是我编写的第一个网站,所以我对任何事情都不是很有经验,这种方式是否允许多次提交?我不打算将用户发送到新页面。
    • 是的,提交将在不离开页面的情况下完成,您可以将它们绑定到按钮单击事件。如果这是您第一次使用 Web 开发,您可能会遇到一些困难,因此如果您打算这样做,请仔细查看 jQuery.com 上的文档。除此之外,我认为快速解决方法是在您的 rating.php 文件中添加一行,如“redirect('./index.php');”,这将使用户回到投票页面。由于它是一个 PHP 重定向,它会在用户没有注意到的情况下发生。它不像 javascript 重定向。
    • 我在页面上嵌入了谷歌地图,内容由用户添加。重定向时内容不会被删除吗?
    【解决方案3】:

    您可以尝试直接在 URL 中将评级作为 GET 变量传递。这样你就可以做 ./ratings.php?rating=5&item=20,并在 PHP 中将这些值作为$_GET['rating']$_GET['item'] 获取。

    【讨论】:

    • 问题在于我已经加载了 php 文件,如果只是创建另一个可以传递变量的 php,它只会让我评价一次。
    • 不一定。您可以将用户重定向回 index.php 的速度比他意识到他甚至首先离开页面的速度还要快。
    • 但是用户在index.php上添加到地图的内容会被重置,这是不利的。
    • 我明白了。那么是的,您可能正在进入 jQuery/ajax 请求领域以完成此操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 2022-03-30
    • 2012-02-24
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多