如何使用数据库中的数据从输入中获取值

时间:2016-03-03 14:14:14

标签: php html input

我正在使用recyclerViewSlot.setEnabled(false); recyclerViewSlot.setClickable(false);

的表格

从我从数据库中获取的数据中填充,如下所示:

<input type="text" name="' . $r['0'] . '" value="' . $r['0'] . '"

表格如下:

enter image description here

我试过这个:

echo '<form id="actions" name="nonValidMainForm" method="post"><table border="2" width="100%">';
    echo "<tr><td><b>Index</b></td><td><b>Email </b></td> <td><b>Date</b></td> <td><b>Name</b></td> <td><b>Surname</b></td> <td><b>Telephone Number</b></td> <td><b>Street Adress</b></td><br/>";
    while($r = mysql_fetch_array($result)) {
        $my[] = $r['0'];
        echo '<tr>';
        echo '<td>'.$roww++.'</td>';
        echo '<td>
                <input size="50%" type="text" name="' . $r['0'] . '" value="'.$r['0'].'">
                <input type="submit" name="unsubscribe" value="Unsubscribe">
            </td>';
        echo '<td>'.$r['1'].'</td>';
        echo '<td>'.$r['2'].'</td>';
        echo '<td>'.$r['3'].'</td>';
        echo '<td>'.$r['4'].'</td>';
        echo '<td>'.$r['5'].'</td>';
        echo '</tr>';
    }
    echo "<pre>";
    print_r($my);
    echo "</pre>";
    if(isset($_POST['unsubscribe'])){
        foreach($my as $key=>$value){
            $email = $value;
        }
        echo "<script>console.log( 'Value is: " . $email . "' );</script>";

    }

    echo '<button style="position:fixed;bottom:5;left:5;">Change</button>';
    echo '</table></form>';

但值为空

所以每次按下取消订阅按钮都会删除相应的电子邮件。这怎么可能?

3 个答案:

答案 0 :(得分:2)

您的表单包含许多具有相同name的元素。浏览器如何确定在发布表单时要将哪个元素的值发送到服务器?通常最后一个优先,但我怀疑行为可能是未定义的和特定于浏览器的。

如果每个单独的表行都需要是一个单独的可发布表单,那么每一行都需要自己的表单:

echo '<td>
        <form method="POST" action="somePage.php">
          <input size="50%" type="text" name="email" value="'.$r['0'].'">
          <input type="submit" name="unsubscribe" value="Unsubscribe">
        </form>
      </td>';

当浏览器将表单发布到服务器时,它会明确知道要使用哪些emailunsubscribe元素。由于该表格中只有一个。

答案 1 :(得分:1)

您必须将输入包装在<form>标记中。

echo '<form>';
while($r = mysql_fetch_array($result)) {
echo '<tr>';
    echo '<td>'.$roww++.'</td>';
    echo '<td>
        <input size="50%" type="text" name="email" value="'.$r['0'].'">
        <input type="submit" name="unsubscribe" value="Unsubscribe">
    </td>';
    echo '<td>'.$r['1'].'</td>';
    echo '<td>'.$r['2'].'</td>';
    echo '<td>'.$r['3'].'</td>';
    echo '<td>'.$r['4'].'</td>';
    echo '<td>'.$r['5'].'</td>';
    echo '</tr>';
}
echo '</form>';

答案 2 :(得分:1)

if(isset($_POST['unsubscribe'])){
        $email = $POST['email'];
        echo "<script>console.log( 'Value is: " . $email . "' );</script>";
    }

根据您上面的代码,它看起来像是一个语法错误。请尝试以下更新

if(isset($_POST['unsubscribe'])){
            $email = $_POST['email'];
            echo "<script>console.log( 'Value is: " . $email . "' );  </script>";
        }