Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
帮助PHP和HTML复选框_Php_Mysql_Forms_Checkbox - Fatal编程技术网

帮助PHP和HTML复选框

帮助PHP和HTML复选框,php,mysql,forms,checkbox,Php,Mysql,Forms,Checkbox,我需要帮助与复选框和PHP的工作。我只是想确定是否使用PHP选中复选框的值 例如: <?php include ("inc/conf.php"); $id = $_SESSION['id']; if(isset($_POST['subfrm'])){ $gtid = $_REQUEST['tid']; $ch1 = $_REQUEST['ch1']; if($ch1 == "ON"){ $gch1 = "Y"; } else { $gch1 = "N";

我需要帮助与复选框和PHP的工作。我只是想确定是否使用PHP选中复选框的值

例如:

<?php
include ("inc/conf.php");
$id = $_SESSION['id'];

if(isset($_POST['subfrm'])){
  $gtid = $_REQUEST['tid'];

  $ch1 = $_REQUEST['ch1'];
  if($ch1 == "ON"){
    $gch1 = "Y";
  } else {
    $gch1 = "N";
  }

  $ch2 = $_REQUEST['ch2'];
  if($ch2 == "ON"){
    $gch2 = "Y";
  } else {
    $gch2 = "N";
  }

  mysql_query("UPDATE SET ctable ch1='$gch1', ch2='$gch2' WHERE id='$gtid'");
}
?>

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="tid" value="<?php echo $id; ?>" />
<input type="checkbox" name="ch1" />Hats
<input type="checkbox" name="ch2" />Watches
<textarea name="thetext"></textarea>
<input type="submit" name="subfrm" value="PUNCH ME" />
</form>
试试这个:

<?php
$ch1 = isset($_REQUEST['ch1']);


您不需要检查以查看值是什么,因为如果未检查,它将不会提交任何数据,如果是,它将在
上提交一个值。

。它会让您知道选中了哪个复选框,并且还会在表单提交时保留该复选框

<?php
$message = '';
$ch1_checked = false;
$ch2_checked = false;
if(isset($_POST['submit_button'])) {
    // Form was submitted
    $ch1_checked = isset($_POST['ch1']);
    $ch2_checked = isset($_POST['ch2']);

    if($ch1_checked && $ch2_checked) {
        $message .= 'Both were checked.';
    } else if($ch1_checked) {
        $message .= 'Checkbox 1 was checked.';
    } else if($ch2_checked) {
        $message .= 'Checkbox 2 was checked.';
    } else {
        $message .= 'Neither were checked.';
    }
}
?>

<?php echo $message; ?>
<form id="my_form" action="test.php" method="post">
    <input type="checkbox" name="ch1" value="ch1" <?php if($ch1_checked) echo 'checked'; ?> />Checkbox 1<br />
    <input type="checkbox" name="ch2" value="ch2" <?php if($ch2_checked) echo 'checked'; ?> />Checkbox 2<br />
    <input type="submit" name="submit_button" value="Go!" />
</form>

/>复选框2

,请在查询数据库之前清理用户输入。对于您当前的代码,您很容易受到SQL注入的攻击谢谢:)我还发现,导致一切的错误都是发送到SQL的textarea信息,而不是复选框。一个简单的mysql\u real\u escape\u string()解决了所有问题。令人惊讶的是,一个错误竟然会引起严重的头痛。无论如何,谢谢。现在它又回来为我工作了。
<?php
$message = '';
$ch1_checked = false;
$ch2_checked = false;
if(isset($_POST['submit_button'])) {
    // Form was submitted
    $ch1_checked = isset($_POST['ch1']);
    $ch2_checked = isset($_POST['ch2']);

    if($ch1_checked && $ch2_checked) {
        $message .= 'Both were checked.';
    } else if($ch1_checked) {
        $message .= 'Checkbox 1 was checked.';
    } else if($ch2_checked) {
        $message .= 'Checkbox 2 was checked.';
    } else {
        $message .= 'Neither were checked.';
    }
}
?>

<?php echo $message; ?>
<form id="my_form" action="test.php" method="post">
    <input type="checkbox" name="ch1" value="ch1" <?php if($ch1_checked) echo 'checked'; ?> />Checkbox 1<br />
    <input type="checkbox" name="ch2" value="ch2" <?php if($ch2_checked) echo 'checked'; ?> />Checkbox 2<br />
    <input type="submit" name="submit_button" value="Go!" />
</form>