【问题标题】:How to send dynamic data inside the bootstrap modal into database如何将引导模式内的动态数据发送到数据库
【发布时间】:2016-11-08 03:23:18
【问题描述】:

我有一个复选框列表。当我点击一个复选框时,会出现一个模式,其中包含来自数据库的相应数据。我已经这样做了。这是我的代码。

db.php

<?php  
    $servername = "localhost";
    $username = "root";
    $password = "";
    $db = "db";

    $conn = mysqli_connect($servername, $username, $password,$db);
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    echo "Connected successfully <br/>";
?>

student.php

<body>
    <form>
        <label>
            <input type="checkbox" value="1" name="name">
            Ann
        </label>
        <label>
            <input type="checkbox" value="2" name="name">
            Sam
        </label>
        <label>
            <input type="checkbox" value="3" name="name">
            Amaa
        </label>
    </form>

    <!--modal-->
    <div id="myModal" class="modal fade" role="dialog">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">Modal Header</h4>
                </div>
                <div class="modal-body"></div>
                <div class="modal-footer">
                    <button type="submit" class="btn btn-default" id="submit" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>
</body>

student.js

$(document).ready(function(){
    $("input[type=checkbox][name=name]").change(function(){
        if(this.checked) {    
            var value = $(this).val();
            $.ajax({
                url:"modal.php",
                type:"POST",
                data:{value:value},
                success:function(modalBody){
                    $("#myModal .modal-body").html(modalBody);
                    $("#myModal").modal('show');
                }
            });
        }
    });
});

modal.php

<?php
    if($_POST['value']){
        $test = $_POST['value'];
        include('db.php');

        $sql = "SELECT subject FROM grade where name=".$value." ";
        $res = mysqli_query($conn,$sql);
        while($row = mysqli_fetch_assoc($res)){
            echo "<input type='checkbox' name='subject[]' value='".$row['subject']."'>".$row['subject'];
            echo "<br>";   
        }
    }
?>

我的问题是如何将模式上选定的复选框值发送到数据库中? 这是我尝试过的方法。

new.js

$(document).ready(function(){
    $("input[type=checkbox][name=name]").change(function(){
        if(this.checked) {
            var value = $(this).val();
            $.ajax({
                url:"modal.php",
                type:"POST",
                data:{test:value},
                success:function(modalBody){
                    $("#myModal .modal-body").html(modalBody);
                    $("#myModal").modal('show');
                }
            });
        }
    });

    $('#myModal submit').on('submit',function(){
        var insert = [];
        $('input[name=category[]]').each(function(){
            if($(this).is(":checked")) {
                insert.push($(this).val());
            }
        });
        insert = insert.toString();
        $.ajax({
            url: "insert.php",
            method: "POST",
            data:{insert:insert},
            success:function(data){
                $('#result').html(data);
            }
        });
    });
});

插入.php

<?php
    if(isset($_POST["insert"])) {
        include ('db.php');
        $query = "INSERT INTO name_list(student_name) VALUES ('".$_POST["insert"]."')";
        $result= mysqli_query($conn, $query);
        echo "Data Inserted Successfully!";
    }
?>

我尝试了很多。每次name_list 表都没有值填充。你能帮我解决这个问题吗?我想再次将模式上的选定复选框值发送到数据库中。低于值。

echo "<input type='checkbox' name='subject[]' value='".$row['subject']."'>"

【问题讨论】:

    标签: php jquery bootstrap-modal checkboxlist


    【解决方案1】:

    首先,如果有多个同名复选框,则名称必须是数组,如:

    <form>
       <input type="checkbox" name="bla[]" value="1" />
       <input type="checkbox" name="bla[]" value="2" />
    </form>
    

    现在你可以在 jquery 中获得如下值:

    $(document).ready( function () {    
        $("input[name='bla[]']").each( function () {
        if($(this).is(':checked'))
        {
            alert($(this).val());
            // put this value in an array
        }
        });
    });
    

    Working Fiddle

    【讨论】:

    • 最好在表单中指定一个 ID,并使用选择器专门从该表单中选择值,#formid input[name='bla[]'
    • @Xorifelse 我试试这个
    • @Xorifelse ,是的,我明白了
    猜你喜欢
    • 1970-01-01
    • 2017-02-20
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 2014-11-13
    • 2013-05-06
    相关资源
    最近更新 更多