感谢所有回复的人。我通过你的想法组合更新它。我修改了代码以显示有效的方法。
通过将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();
}
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>
是你在尚未使用<?php
标签时使用的sytax。在这里,你已经用PHP和echo
写作了,你再次a a a a <?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 ['wordID'],在for循环中搜索$ _POST [$ row ['wordID']]。
你在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"].'">
我会这样做:
<td>
<form method='POST'>
<input type='hidden' name='LIKE' value='".$row['wordId']."'>
<input type='submit' value='Submit'>
</form>
</td>
Action总是默认为:PHP_SELF所以没有点添加,另外添加隐藏字段而不是提交按钮比我更好,因为它更容易阅读,另外添加一个简单的选项,因为你实际上想要添加更多的表单(完全可能)