-2

好的,例如说我有一个用户可以在其中投票的网站。

假设每个民意调查都在数据库中,并且每个民意调查都有一个唯一的 ID 列,以及一个存储问题的列,一个代表多少票赞成的列,以及一个代表多少反对票的列。

假设我有一个页面,用户可以在其中查看民意调查。因此,我查询数据库中的所有民意调查,然后遍历所有民意调查,将它们打印到屏幕上,并在每个民意调查旁边放置一个单选按钮表单,您可以在其中对问题投是/否,然后提交。

这是我需要帮助的地方。例如,如果我在屏幕上有数百个这样的民意调查,并且用户单击其中一个旁边的提交按钮并进行投票,我如何确定需要更新记录的唯一民意调查?

所以我想我要说的是,我如何将每个投票的 id 关联到它自己的提交按钮,以便当用户单击该特定提交按钮时,我知道要更新哪个投票的记录?

Database: A_Database

Table: Polls
ID        Question           Yes    No
1       "Is the sky blue?"    0     0
2       "Is water wet?"       0     0

这是数据库的结构。所以现在我将查询所有问题,并将它们打印到屏幕上以及提交投票的表格。

$query = SELECT * FROM `Polls`;
   if ($query_run = mysql_query($query)) {
        $count = 0;
        $array = mysql_fetch_assoc($query_run);
        while ($count < mysql_num_rows($query_run)) {
            echo '<strong>Poll: Yes/No:</strong>'.'<br>';
            echo mysql_result($query_run, $count, 'Question').' ';
            echo mysql_result($query_run, $count, 'yes').'/';
            echo mysql_result($query_run, $count, 'no').' ';
                            echo '<form><input type="radio" name="vote"> yes
                                        <input type="radio" name="vote"> no 
                                        <input type="submit" name="submit" value="vote">
                                  </form>';
            $count = $count + 1;
        }
    } else {
        echo mysql_error();
    }

好的,现在所有的投票都输出到屏幕上,每个投票旁边都有一个提交按钮。我的问题是如何将每个提交按钮与其自己的投票相关联,以便当用户投票并单击特定提交按钮时,我知道要更新记录的投票。

4

2 回答 2

0

仅使用 php更新数据库中的行是不可能的。您将不得不使用 Javascript。

PHP 是服务器端语言,Javascript 是客户端语言。

这意味着在您的网络浏览器有机会看到它之前,服务器会使用 PHP 为您的浏览器呈现 html 页面以进行打印。数据库不能用 PHP 修改,除非服务器再次加载整个页面,因为服务器端语言首先运行。

这就是为什么您必须为此使用 Javascript。由于 Javascript 是一种客户端语言,因此它在 Web 浏览器的范围内运行。因此,如果您使用 Javascript,您将能够更新数据库。

这种无需再次加载整个网页即可在页面上发布和更新元素的 Javascript 方法称为 AJAX。

如果您如此热衷于不学习 Javascript,您可以使用PHPLiveX库在 PHP 中使用 AJAX。这很好,但是一旦你使用它,你可能会意识到为什么使用 Javascript 更实用。我会使用JQuery,但那是用 Javascript 编写的。

于 2012-06-25T22:33:37.227 回答
0

Sounds like foreach poll, use a unique ID. Using jQuery, when the uniqueID submit button is clicked, send an ajax POST request to update the database and then update the poll data on the screen on success.

Unless you show your work, I can't give you any specific information beyond how it sounds like I would be doing it given your description.

于 2012-06-25T22:09:10.083 回答