如何在php中传递复选框的值

如何在php中传递复选框的值,php,Php,您好,我正在使用for each循环生成复选框列表,我想将选中复选框的值传递到数据库中 foreach($this->lis as $lst) {?> <tr> <td> <input type="checkbox" name="list" value="1" /> <label for="list_32"><?php echo $list->nList ?></labe

您好,我正在使用for each循环生成复选框列表,我想将选中复选框的
传递到数据库中

foreach($this->lis as $lst)
 {?>
  <tr>
    <td>
     <input type="checkbox" name="list" value="1" />
         <label for="list_32"><?php echo $list->nList ?></label>
    </td>
  </tr>
 <?php } ?>
<? 
    if(isset($_POST['submit'])) // once form is submitted build your logic
    {
        $list = $_POST['list'];
        foreach($list as $value)
        {
            echo "<br />Checked: $value";
            // use $value to insert into database
            $sql = "insert into...";
            mysql_query($sql);
        }
    }
?>
<form name="frm" method="post">
<table>
<? foreach($this->lis as $lst)
 {?>
  <tr>
    <td>
     <input type="checkbox" name="list[]" value="<?php echo $list->nList ?>" />
         <label for="list_32"><?php echo $list->nList ?></label>
    </td>
  </tr>
 <?php } ?>
 <tr>
    <td><input name="submit" value="Submit" type="submit" /></td></tr></table>
</form>
foreach($this->lisas$lst)
{?>

当我选中复选框时,我想将标签名称传递到数据库中。有人能帮我吗。

在名称中,你应该使用[](因为它是一个数组)。因此,在这种情况下,它应该是name=“list[]”。然后当你提交它时(post或get),你只需要在列表上获得选中的数据[]数组。我不确定我是否理解你的问题。如果我没有理解,请分享更多信息。

在名称中,你应该使用[](因为它是一个数组)。因此在这种情况下,它将是name=“list[]”。然后当你提交它(post或get)时,你只需在列表中获得选中的数据[]数组。我不确定我是否理解你的问题。如果我没有理解,请分享更多信息。

我想这就是你想要的:

foreach($this->lis as $lst)
 {?>
  <tr>
    <td>
     <input type="checkbox" name="list[<?php echo $list->nList ?>]" value="1" />
     <label for="list_32"><?php echo $list->nList ?></label>
    </td>
  </tr>
 <?php } ?>
foreach($this->lisas$lst)
{?>

我想这就是你想要的:

foreach($this->lis as $lst)
 {?>
  <tr>
    <td>
     <input type="checkbox" name="list[<?php echo $list->nList ?>]" value="1" />
     <label for="list_32"><?php echo $list->nList ?></label>
    </td>
  </tr>
 <?php } ?>
foreach($this->lisas$lst)
{?>

选中此代码。您需要将数组作为复选框名称,即列表[]。表单提交后,您可以使用其值插入数据库

foreach($this->lis as $lst)
 {?>
  <tr>
    <td>
     <input type="checkbox" name="list" value="1" />
         <label for="list_32"><?php echo $list->nList ?></label>
    </td>
  </tr>
 <?php } ?>
<? 
    if(isset($_POST['submit'])) // once form is submitted build your logic
    {
        $list = $_POST['list'];
        foreach($list as $value)
        {
            echo "<br />Checked: $value";
            // use $value to insert into database
            $sql = "insert into...";
            mysql_query($sql);
        }
    }
?>
<form name="frm" method="post">
<table>
<? foreach($this->lis as $lst)
 {?>
  <tr>
    <td>
     <input type="checkbox" name="list[]" value="<?php echo $list->nList ?>" />
         <label for="list_32"><?php echo $list->nList ?></label>
    </td>
  </tr>
 <?php } ?>
 <tr>
    <td><input name="submit" value="Submit" type="submit" /></td></tr></table>
</form>


选中此代码。您需要将数组作为复选框名称,即列表[]。表单提交后,您可以使用其值插入数据库

foreach($this->lis as $lst)
 {?>
  <tr>
    <td>
     <input type="checkbox" name="list" value="1" />
         <label for="list_32"><?php echo $list->nList ?></label>
    </td>
  </tr>
 <?php } ?>
<? 
    if(isset($_POST['submit'])) // once form is submitted build your logic
    {
        $list = $_POST['list'];
        foreach($list as $value)
        {
            echo "<br />Checked: $value";
            // use $value to insert into database
            $sql = "insert into...";
            mysql_query($sql);
        }
    }
?>
<form name="frm" method="post">
<table>
<? foreach($this->lis as $lst)
 {?>
  <tr>
    <td>
     <input type="checkbox" name="list[]" value="<?php echo $list->nList ?>" />
         <label for="list_32"><?php echo $list->nList ?></label>
    </td>
  </tr>
 <?php } ?>
 <tr>
    <td><input name="submit" value="Submit" type="submit" /></td></tr></table>
</form>


好的,你有一些问题

首先,请避免经常打开和关闭php标记。只需回显HTML即可。频繁进出php会导致性能问题

因此,首先,您需要在此处设置一个表单,您的表单需要指向第二个页面(或使用isset函数的自处理,但为了清晰起见,让我们使用前一个解决方案)。第二个页面将根据用户勾选的内容为您将内容转储到DB中

下面是表单的HTML

<form action="database.php" method="POST">
    <div>
        <label for="checkbox1">This is the first option:</label>
        <input type="checkbox" id="checkbox1" name="checkbox1" />
    </div>
    <div>
        <label for="checkbox2">This is the second option:</label>
        <input type="checkbox" id="checkbox2" name="checkbox2" />
    </div>
    <div>
        <input type="submit" />
    </div>
</form>
请注意,这只是一个粗略的解决方案-您还没有告诉我您是如何做到这一点的,所以我假设您的DB与用户投票等相关。您还可以通过增加值来更新checkbox1..等等

希望这有帮助

  • 伊奥甘

    • 好的,您有一些问题

      首先,请避免经常打开和关闭php标记。只需回显HTML即可。频繁进出php会导致性能问题

      因此,首先,您需要在此处设置一个表单,您的表单需要指向第二个页面(或使用isset函数的自处理,但为了清晰起见,让我们使用前一个解决方案)。第二个页面将根据用户勾选的内容为您将内容转储到DB中

      下面是表单的HTML

      <form action="database.php" method="POST">
          <div>
              <label for="checkbox1">This is the first option:</label>
              <input type="checkbox" id="checkbox1" name="checkbox1" />
          </div>
          <div>
              <label for="checkbox2">This is the second option:</label>
              <input type="checkbox" id="checkbox2" name="checkbox2" />
          </div>
          <div>
              <input type="submit" />
          </div>
      </form>
      
      请注意,这只是一个粗略的解决方案-您还没有告诉我您是如何做到这一点的,所以我假设您的DB与用户投票等相关。您还可以通过增加值来更新checkbox1..等等

      希望这有帮助

      • 伊奥甘

      听起来您的思路是正确的。如果您显示了原始代码的修改版本以及如何处理$\u POST变量以查看检查的内容,可能会有所帮助。听起来您的思路是正确的。如果您显示了原始代码的修改版本以及如何处理$\u POST变量,可能会有所帮助看看检查了什么。