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

我正在制作一个应用程序,根据按下的复选框将名称和一些文本添加到数据库中。我有一个 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));

        }

      }



饮歌长啸
浏览 79回答 1
1回答

当年话下

只需更改检查值的顺序并使用 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)                );}
打开App,查看更多内容
随时随地看视频慕课网APP