【问题标题】:PHP/MySQL - checkboxes of data from db, submission of 2 parametresPHP/MySQL - 来自数据库的数据复选框,提交 2 个参数
【发布时间】:2016-03-11 06:55:05
【问题描述】:

所以,我为此苦苦挣扎了很长时间。

我需要使用数据库中的复选框制作一个列表,例如 [汽车 ID 和值的复选框][品牌][型号]。然后,我们需要从列表中选择两辆汽车,并且选择了两辆汽车 - 我们应该阻止所有未选中的汽车,直到选中的不会被取消选中。然后,我们需要将所选汽车的两个汽车 ID 汇总到 list.php 页面中。如果选择一辆车或没有选择一辆车,则不会提交。

我不明白如何实现。有人知道如何解决这个问题吗? 是的:jquery 是可取的,ajax 不是(因为我从未使用过它,我认为我不需要它,因为我只需要将参数传输到另一个页面)

我的代码

<?php
$hostname = "localhost";
$username = "root";
$password = "";
$dbname = "jdmdb";

$con = mysqli_connect($hostname, $username, $password) or die(mysqli_error());
$con->query("SET NAMES cp1251");
$con->select_db($dbname);
$result = mysqli_query($con, 'select * from cars') or die(mysqli_error($con));
$rows = $result->fetch_all(MYSQLI_ASSOC);
?>

<html>
    <head>
            <meta http-equiv="Content-Tуpe" сontent="tехt/html; charset=utf-8">
        <title>JDM Database</title>
        <script src=../js/jquery-2.1.4.js type=text/javascript></script>
    </head>
    <body>
        <form name=carlist method=post action="list.php">
        <?
            foreach ($rows as $row) {
                echo '<input type=checkbox name="car_short" value="'.$row['car_short'].' id='.$row['car_short'].'"> '.$row['brand'].' '.$row['model'].' '.$row['spec'].' ('.$row['year'].')<br/>';
            }
            $res = count($rows);  
            echo '<input type=submit value=123>';
        ?>
        </form>
<?            
        mysqli_close($con);
    ?>
    </body>
</html>

【问题讨论】:

标签: javascript php jquery mysql checkbox


【解决方案1】:

您可以将数据数组发送到 list.php 为此,您应该使用以下语法

echo '<input type=checkbox name="car_short[]" value="'.$row['car_short'].' id='.$row['car_short'].'"> '.$row['brand'].' '.$row['model'].' '.$row['spec'].' ('.$row['year'].')<br/>';

这将发送 $_POST['car_short'] 作为两个选定值的数组。如果您想在提交后检查所选汽车的数量,请使用

if(count($_POST['car_short'])<2){// place error;}

否则,您可以使用 jquery 检查选​​中了多少个复选框,否则返回 false。为此,请像这样更改表单代码

<form method=post action="list.php" onSubmit="check();">

检查功能将是

function check(){
   var n = $("input:checkbox:checked").length;
   return n>1;
}

注意:由于我拼错变量,请注意确切代码可能无法正常工作的方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多