感谢所有回复的人。我通过你的想法组合更新它。我修改了代码以显示其工作原理。
通过将LIKE按钮值传递给php来实现LIKE功能,以便更新数据库。
显示表格,每行都有一个LIKE按钮:
echo '<table>
<tr>
<th>Word ID</th>
<th>User ID</th>
<th>User Name</th>
<th>Word</th>
<th>Meaning</th>
<th>Example</th>
</tr>';
foreach ($data as $row)
{
echo '<tr>';
foreach ($row as $value)
{
echo '<td>';
echo $value;
echo '</td>';
}
echo '<td>
<form method="POST" action="'.$_SERVER["PHP_SELF"].'">
<input type="hidden" name="LIKE" value="'.$row['wordID'].'">
<input type="submit" class="btn btn-success" value="Submit">
</form>
</td>';
echo '</tr>';
}
echo '</table>';
处理表单提交的代码是:
if($_POST['submit'])
{
$sql = "UPDATE vocab SET likes = likes+1 where wordID = '{$row['wordID']}'";
$stmt = $db->prepare($sql);
/* Execute */
$stmt->execute();
}
答案 0 :(得分:1)
您在此echo
内进行了echo
:
echo '<td>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>
<input type="submit" value="LIKE" name="<?php echo $row["wordID"]; ?></form>
</td>';
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>
应该是:
<form method="post" action="'.$_SERVER["PHP_SELF"].'">
答案 1 :(得分:1)
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>
是您在尚未使用<?php
标记时使用的sytax。在这里,您已经使用PHP编写了一个echo
并且只是再次使用了<?php
,而另一个echo
,这没有任何意义。
echo '... <form method="post" action="'.$_SERVER["PHP_SELF"].'"> ...';
是您想要包含php_self值的方式。
同时强>
<input type="submit" value="LIKE" name="<?php echo $row["wordID"]; ?></form>
应该是
<input type="submit" value="LIKE" name="'.$row['wordID'].'"></form>
但你无法搜索$ _POST [&#39; wordID&#39;],在for循环中搜索$ _POST [$ row [&#39; wordID&#39;]]。
答案 2 :(得分:1)
我会这样做:
<td>
<form method='POST'>
<input type='hidden' name='LIKE' value='".$row['wordId']."'>
<input type='submit' value='Submit'>
</form>
</td>
动作将始终默认为:PHP_SELF所以没有必要添加它,另外添加隐藏字段而不是提交按钮比我更好,因为它更容易阅读,另外添加一个简单的选项,因为你实际上想要添加更多内容形式(完全可能)