好的,比如说我有一个用户可以投票的网站。
让我们说每个民意调查都在数据库中,每个民意调查都有一个唯一的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();
}
好的,现在所有的民意调查都会输出到屏幕上,每个民意调查都有一个提交按钮。我的问题是我如何将每个提交按钮与自己的民意调查相关联,这样当用户投票并点击特定的提交按钮时,我知道要更新记录的民意调查。
答案 0 :(得分:0)
听起来像foreach民意调查,使用唯一身份证。使用jQuery,当单击uniqueID提交按钮时,发送ajax POST请求以更新数据库,然后在成功时更新屏幕上的轮询数据。
除非你展示你的作品,否则我不能给你任何具体的信息,除非你的描述听起来如此。
答案 1 :(得分:0)
更新数据库中的行不可能与php相关。你必须使用Javascript。
PHP是服务器端语言,Javascript是客户端语言。
这意味着在您的Web浏览器有机会看到它之前,服务器会使用PHP呈现浏览器的html页面。除非服务器再次加载整个页面,否则无法使用PHP修改数据库,因为服务器端语言首先运行。
这就是你必须使用Javascript的原因。由于Javascript是客户端语言,因此它在Web浏览器的范围内运行。因此,如果您使用Javascript,则可以更新数据库。
这种在页面上发布和更新元素而不再加载整个网页的Javascript方法称为AJAX。
如果您非常热衷于不学习Javascript,可以使用PHPLiveX库在PHP中使用AJAX。它很好但是一旦你使用它,你可能会意识到为什么使用Javascript更实用。我会使用JQuery,但这是用Javascript编写的。