为了账号安全,请及时绑定邮箱和手机立即绑定

当复选框被选中时,它会触发更多事件

当复选框被选中时,它会触发更多事件

PHP
饮歌长啸 2024-01-19 10:28:08
我正在制作一个应用程序,根据按下的复选框将名称和一些文本添加到数据库中。我有一个 if 语句,当两个复选框都被按下时触发。问题是,每次您选择两者时,它都会为第一个复选框和第二个复选框添加文本,然后合并。我希望如果您同时按下两个键,则仅显示组合文本。这是有问题的代码。      {        if (isset($_POST['laptopCheck'])) {          $pdo = new PDO("mysql:host=localhost;dbname=liamed", "root", "");          $nume = $_POST['nume'];          $prenume = $_POST['prenume'];          $obiecte = 'laptop';          $q = "insert into users(nume,prenume,inventar)values(:nume,:prenume,:obiecte)";          $r = $pdo->prepare($q);          $r->execute(array(":nume"=>$nume, ":prenume"=>$prenume, ":obiecte"=>$obiecte));        }        if (isset($_POST['telefonCheck'])) {          $pdo = new PDO("mysql:host=localhost;dbname=liamed", "root", "");          $nume = $_POST['nume'];          $prenume = $_POST['prenume'];          $obiecte = 'telefon';          $q = "insert into users(nume,prenume,inventar)values(:nume,:prenume,:obiecte)";          $r = $pdo->prepare($q);          $r->execute(array(":nume"=>$nume, ":prenume"=>$prenume, ":obiecte"=>$obiecte));        }        if (isset($_POST['telefonCheck']) && isset($_POST['laptopCheck'])) {          $pdo = new PDO("mysql:host=localhost;dbname=liamed", "root", "");          $nume = $_POST['nume'];          $prenume = $_POST['prenume'];          $obiecte = 'laptop si telefon';          $q = "insert into users(nume,prenume,inventar)values(:nume,:prenume,:obiecte)";          $r = $pdo->prepare($q);          $r->execute(array(":nume"=>$nume, ":prenume"=>$prenume, ":obiecte"=>$obiecte));        }      }
查看完整描述

1 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

只需更改检查值的顺序并使用 elseif


您还可以删除相当多的重复代码。


$pdo = new PDO("mysql:host=localhost;dbname=liamed", "root", "");


$q = "insert into users

              (nume,prenume,inventar)

        values(:nume,:prenume,:obiecte)";

$r = $pdo->prepare($q);


$obiecte = false;


if (isset($_POST['telefonCheck']) && isset($_POST['laptopCheck'])) {

    $obiecte = 'laptop si telefon';

} elseif (isset($_POST['laptopCheck'])) {

    $obiecte = 'laptop';

} elseif (isset($_POST['telefonCheck'])) {

    $obiecte = 'telefon';

}


if ( $obiecte ) {  // only run if one of the above if's changed this from false

    $r->execute(array(":nume" => $_POST['nume'], 

                      ":prenume" => $_POST['prenume'], 

                      ":obiecte"=>$obiecte)

                );

}


查看完整回答
反对 回复 2024-01-19
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信