使用带有复选框的html发布功能[重复]

Posted

技术标签:

【中文标题】使用带有复选框的html发布功能[重复]【英文标题】:using html post function with checkboxes [duplicate] 【发布时间】:2017-06-11 23:16:26 【问题描述】:

我正在尝试使用带有 phphtml post 函数将 1 或 0 插入到数据库中,具体取决于用户是否勾选了复选框,但是每当我提交表单时,我都会收到索引错误,无论是否复选框是否选中。我该如何防止这种情况发生?我得到的错误是“注意:未定义的索引:第 15 行 C:\xampp\htdocs\scout\insertbadgeinphp.php 中的冒险挑战奖”

<?php
$servername = "127.0.0.1";
$username = "root";
$password = "";
$dbname = "scout";


$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) 
    die("Connection failed: " . $conn->connect_error);
 
if (isset($_POST['submit'])) 

if (!$_POST['Adventure Challenge Award'] == null)

    $aca = "1";

else
    $aca = "0";





$sql = "INSERT INTO insertbadgescout (AdventureChallengeBadge)
VALUES ('$aca');";


if ($conn->multi_query($sql) === TRUE) 

    echo "New records inserted successfully");


else 

    echo "Error: " . $sql . "<br>" . $conn->error;



$conn->close();
?>




<!DOCTYPE html>
<html> 
<head> 
<title>Insert badges scouts have</title> 

</head> 
<body id="body-color"> 
<div id="badges"> 


<form method="POST" action="insertbadgeinphp.php"> 

<input type="checkbox" name="Adventure Challenge Award" value="yes">Adventure Challenge Award<br>

<input id="button" type="submit" name="submit" value="Save Badges"> 
</form> 

</div> 
</body>
<p><a href="Homepage.html"> Home </a> </p> 
</html> 

【问题讨论】:

你能告诉我们你的表单代码吗? 谢谢,如下所述,不要在名称属性中使用空格。 【参考方案1】:

请在您的代码中进行以下修改并尝试

<input type="checkbox" name="Adventure_Challenge_Award" value="yes">Adventure Challenge Award<br>

在您的 PHP 帖子部分中

if ($_POST['Adventure_Challenge_Award'] == 'Yes')

  $aca = "1";

else

$aca = "0";

【讨论】:

【参考方案2】:

您的 $_POST['Adventure Challenge Award'] 未定义,这不是从表单发送的,因为它使用空格。

小贴士:

不要在变量中使用空格(就像你一样) 使用可以快速阅读和易于理解的简单名称,例如(agreementRadio act.) 总是,我的意思是总是转义你传递给查询的字符串...More information here 将数据发送到另一个文件,例如 Registration.php。

【讨论】:

【参考方案3】:

请勿在您的姓名中使用空格="my_input"。请改用 undescore。 你可以改变:

if (!$_POST['Adventure Challenge Award'] == null)

if (!isset($_POST['Adventure Challenge Award']))

检查变量是否存在

【讨论】:

【参考方案4】:

试试这个,不要在 $_POST['Adventure Challenge Award'] 中使用空格

$servername = "127.0.0.1";
$username = "root";
$password = "";
$dbname = "scout";


$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) 
    die("Connection failed: " . $conn->connect_error);
 
if (isset($_POST['submit'])) 

if (!$_POST['Adventure_Challenge_Award'] == null)

    $aca = "1";

else
    $aca = "0";





$sql = "INSERT INTO insertbadgescout (`AdventureChallengeBadge`)
VALUES ('$aca');";

if ($conn->query($sql)) 
    echo "New records inserted successfully");
 else 
    echo "Error";



$conn->close();
?>

【讨论】:

以上是关于使用带有复选框的html发布功能[重复]的主要内容,如果未能解决你的问题,请参考以下文章

带有链接的 HTML 表格行未选中复选框 [重复]

React.js - 功能组件中的状态未更新[重复]

带有复选框和所有可点击的Android ListView [重复]

带有选中和后标记的CSS表单复选框样式[重复]

使用 jQuery/AJAX 从 JSON 数据中过滤带有复选框的结果

带有复选框的Java MYSQL选择[重复]