【问题标题】:How to compare html checkbox values in php?如何比较php中的html复选框值?
【发布时间】:2015-02-21 16:41:15
【问题描述】:

我有三个复选框和三个类似这样的输入字段,

        <input type="checkbox" name="fruit" value="orange" >
        <input type="text" name="orange" >Orange
        <input type="checkbox" name="fruit" value="apple" >
        <input type="text" name="n" >Apple<br/>
        <input type="checkbox" name="fruit" value="mango" >
        <input type="text" name="mango" >Mango

我有一个名为 fruits 的 mysql 表,其中有四列名为 id、apple、orange、mango。 我想做一些事情,如果用户选择橙色,苹果,芒果(复选框)我想从三个输入字段将数据插入到表中的橙色,苹果,芒果中,或者如果用户选择两个用户复选框,它只会插入数据从输入字段的值到两列,或者如果只选中一个复选框,则插入一列!这样做的标准程序是什么?在此先感谢

【问题讨论】:

  • 如果 (isset($_POST['fruit'])) {}
  • 这就是一般的想法。复选框,你可以使用 foreach 和 implode。
  • 你在下面有答案。
  • 顺便说一句,您需要将您的复选框视为一个数组。

标签: php html mysql


【解决方案1】:

只发送选中的复选框,所以使用isset

if (isset($_POST['mango']) || isset($_POST['apple']) || isset($_POST['orange'])) {
    $query = 'INSERT INTO table VALUES (orange, apple, mango) VALUES (';
    $query .= (isset($_POST['orange']) ? 1 : '') . ',';
    $query .= (isset($_POST['apple'])  ? 1 : '') . ',';
    $query .= (isset($_POST['mango'])  ? 1 : ''); 
    $query .= ')';
}

【讨论】:

  • 嗯... 在我被 OP 盘问之后,祝你黑豹一切顺利 ;-)
  • 您的代码中存在一些错误,我已修复,但无法正常工作!
  • @monir009:你的意思是什么错误?我的代码做什么以及应该做什么?
  • 虽然它的基本语法错误:语法错误,意外')' 你没有像这样 isset($_POST['orange']) 那样在几行中正确关闭括号? 1:''。 ',';
  • 并写了两次值:)
【解决方案2】:

它对我有用。

我的代码:

HTML

 <form  action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
<input type="checkbox" name="fruit[]" value="orange" >Orange
<input type="checkbox" name="fruit[]" value="apple" >Apple
<input type="checkbox" name="fruit[]" value="mango" >Mango
<input type="submit" value="Insert into Database">
</form>

PHP

 <?php 

// define variables and set to empty values
 $fruits = array();
if ($_SERVER["REQUEST_METHOD"] == "POST") 
{
  $fruits = test_input($_POST);
}
function test_input($data) 
 {
    $servername = "";// localhost, server name
    $username = "";// username
    $password = "";//password
    $dbname = "";//database name

   // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);

    for($i =0; $i < sizeof($data["fruit"]);  $i++)
    {
        //select query where count > 0 and fruitname = $data["fruit"]
        //If its first time, Select query returns false
        // write Insert into db table values(fruitname = $data["fruit"] , count =1)

    // if its exist value, select query returns count value,
    // update query set value = value+ 1 where   fruitname = $data["fruit"]
   }
}

?>

【讨论】:

  • 试试这段代码,给你的数据库查询并执行查询,如果你使用任何其他数据库并想如何编写查询,请点击此链接,Select last id
猜你喜欢
  • 2016-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多