2

我无法将复选框值和详细信息提交到我的数据库。

这是我的 HTML:

<form method="get" action="check.php">
            <input type="checkbox" name="checkAccount"/>
            <input type="hidden" name="table_name" value="masterChart" />
            <input type="hidden" name="column_name" value="account" />
            <p><a href='check.php'><input type="submit" class="btn btn-primary" value="Submit" /></a></p>
    </form>

这是 check.php:

$table = $_GET['table_name'];
$column = $_GET['account'];

$dbc = mysqli_connect('localhost', 'root', 'root', 'database') or die('Connection error!');

if ($value = 1) {
 $checkbox = "INSERT INTO login_table_display(`user`, `table`, `column`, `value`) VALUES(`:user`, '$table', '$column', `$value`)";
 mysqli_query($dbc, $checkbox) or die('Database error, check!');
 }

header('location:index.php');

正如您在上面看到的,我使用变量来获取该复选框的其他详细信息以插入到表中。

如果复选框被选中,我按下提交后,这就是在 url 中看到的内容:

http://localhost/admin/check.php?checkAccount=on&table_name=masterChart&column_name=account

任何建议或帮助将不胜感激!

4

6 回答 6

2

提交数据的经典方法是将 value 属性添加到表单中的 checkboxes 元素。在服务器端,您必须检查“null”的值。

<input type="checkbox" name="checkAccount" value="putyourvaluehere"/>
于 2013-06-11T10:03:42.943 回答
2
Your Html is not ok

It should be

<form method="get" action="check.php">
            <input type="checkbox" name="checkAccount"/>
            <input type="hidden" name="table_name" value="masterChart" />
            <input type="hidden" name="column_name" value="account" />
            <p><input type="submit" class="btn btn-primary" value="Submit" /></p>
    </form>

Also
if(isset($_POST['checkAccount']) {

Should Be
if( isset($_POST['checkAccount']) ) {
于 2013-06-11T10:12:30.057 回答
1

尝试这个:

首先,您必须编辑您的 html 代码,如下所示;

<form method="get" action="check.php">
    <input type="checkbox" name="checkAccount" value='cool'/>
    <input type="hidden" name="table_name" value="masterChart" />
    <input type="hidden" name="column_name" value="account" />
    <p><input type="submit" class="btn btn-primary" value="Submit" /></p>
</form>

您没有为复选框赋予价值在标签内使用提交按钮,这不是一个好习惯。

于 2013-06-11T10:05:02.090 回答
1

复选框值仅在选中时才会提交。用于isset($_GET['checkAccount'])此:

$var= isset($_GET['checkAccount']) ? 1 : 0; // Or whatever values you use in DB
于 2013-06-11T09:54:49.233 回答
0

// 你的 html 代码应该是这样的

<form method="get" action="check.php">

        <input type="checkbox" name="checkAccount"/>

        <input type="hidden" name="table_name" value="masterChart" />

        <input type="hidden" name="column_name" value="account" />

        <p><input type="submit" class="btn btn-primary" value="Submit" /></p>
</form>



<?php

$table = $_GET['table_name'];

$column = $_GET['account'];

$value = isset($_GET['checkAccount']) ?1:0;

$dbc = mysqli_connect('localhost', 'root', 'root', 'database') 或 die('连接错误!');

如果($值 == 1){

$checkbox = "INSERT INTO login_table_display('user', 'table', 'column', 'value')

VALUES(':user', '$table', '$column', '$value')";

mysqli_query($dbc, $checkbox) or die('数据库错误,检查!');

}

标头('位置:index.php');

?>

于 2013-06-11T12:04:04.273 回答
0

代替:

 if(isset($_POST['checkAccount'])

至:

 if(isset($_GET['checkAccount'])   
于 2013-06-11T09:58:27.310 回答