无法将表单数据传递给PHP来更新数据库

问题描述 投票:-1回答:3

感谢所有回复的人。我通过你的想法组合更新它。我修改了代码以显示有效的方法。

通过将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();

}
php html mysql forms
3个回答
1
投票
<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']]。


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
投票

我会这样做:

<td>
<form method='POST'>
<input type='hidden' name='LIKE' value='".$row['wordId']."'>
<input type='submit' value='Submit'>
</form>
</td>

Action总是默认为:PHP_SELF所以没有点添加,另外添加隐藏字段而不是提交按钮比我更好,因为它更容易阅读,另外添加一个简单的选项,因为你实际上想要添加更多的表单(完全可能)

© www.soinside.com 2019 - 2024. All rights reserved.