簡體   English   中英

如何將單選按鈕更改為復選框並仍將數據插入數據庫(選中/取消選中)

[英]How to change radio button into checkbox and still insert data into database (check/uncheck)

我不是開發人員,我從不這樣做,但是對於特定的事情,我制作了一個網頁,人們可以在其中將數據插入 sql 數據庫。

我的代碼正在運行,但我想我可以優化它,因為我是根據我在互聯網上找到的東西制作的,我想把單選按鈕變成復選框,因為當有很多按鈕時,最后有很多按鈕許多行。 也許有什么不對的,因為我改了名字,所以我的公司沒有參考。

<!DOCTYPE html>

<?php
include('Connexion_DB.php');

/* Queries */

if (isset($_POST['Btn_Mode1'])){

        $req1 = "UPDATE DATABASENAME SET Mode1 = '".$_POST['Mode1']."' WHERE ID = '".$_POST['ID']."'";
        $result1 = sqlsrv_query($con,$req1);
}
if (isset($_POST['Btn_Mode2'])){

        $req2 = "UPDATE DATABASENAME SET Mode2 = '".$_POST['Mode2']."' WHERE ID = '".$_POST['ID']."'";
        $result2 = sqlsrv_query($con,$req2);
}

if (isset($_POST['form1']))
{ 
    $Status = 'Y';
    $array = explode(PHP_EOL, $_POST['textareaname']);

    foreach($array as $index=>$value) {
    if($value === '') unset($array[$index]);
    }

    foreach ($array as $key => $value) {
    $req = "INSERT INTO DATABASENAME (DATA, Active, Mode1, Mode2) VALUES ('".$value."','".$Status."', 'false','false');";
    $result = sqlsrv_query($con,$req);
    }
    echo "<pre>";   
    echo print_r($array);   
    echo "</pre>";
}

if (isset($_POST['form2'])) {

        foreach ($_POST['ID'] as $id) {
            $req3 = "DELETE FROM DATABASENAME WHERE ID = '".$id."'";
            $result3 = sqlsrv_query($con,$req3);
        }   
    }

include('menu.php');
?>

<html>
    <head>
    <title>TITLE</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="X-UA-Compatible" content="IE=edge" >
</head>

<script>
    $(function() {
        $('.RadioBtn_Mode1').change(function() {

            Mode1 = $(this).val();
            ID = $(this).attr('id');
            $.post( "Test_Page.php", { 
                Btn_Mode1: true, 
                ID: $(this).attr('id'), 
                Mode1: $(this).val()
            } ).done(function( ) {
                toastr.success(ID +' est a ' +Mode1);
            });

        });
    });

    $(function() {
        $('.RadioBtn_Mode2').change(function() {

            Mode2 = $(this).val();
            ID = $(this).attr('id');
            $.post( "Test_Page.php", { 
                Btn_Mode2: true, 
                ID: $(this).attr('id'), 
                Mode2: $(this).val() 
            } ).done(function( ) {
                toastr.success(ID + ' est a ' +Mode2);
            });

        });
    });

</script>


<body>


<div class="container body-container">
    <div id='titre'class='titre'><h1>Insert Data</h1></div>
        <form method='post' >
            <input type="hidden" name="form1" />
                <br />
                <p>Data :</p>
                <textarea name="textareaname" cols="60" rows="5"></textarea>
                <br />
                <br />
                <input type="submit" value="Submit"/>
        </form>

<form method="post" action="Test_Page.php">
    <input type="hidden" name="form2">
    <input type="submit" id="deleteBtn" value="Delete"/>
    <div class="nav" id="inst1">    
        <table class="one">                 
            <thead>
                <tr>
                    <th scope="col"></th>
                    <th scope="col">Active</th>
                    <th scope="col">Data</th>
                    <th colspan="2">Mode1</th>
                    <th colspan="2">Mode2</th>
                </tr>
            </thead>                
<tbody> 

<?php               
    $req1 = "SELECT ID, Active, Data, Mode1, Mode2 FROM DATABASENAME" ;
    $result1 =  sqlsrv_query($con,$req1);
    while($row1 = sqlsrv_fetch_array($result1)) 
        {

        echo "<tr>";
        echo "<td><input type='checkbox' name = 'ID[]' value='" . $row1['ID'] . "'/></td>";
        echo '<td>'.$row1['Active'].'&nbsp;&nbsp;</td>
            <td>'.$row1['Data'].'&nbsp;&nbsp;</td>';                
                    if ($row1['Mode1']=='False'){
                        echo '<td>False : <input class="RadioBtn_Mode1" id="'.$row1['ID'].'" name="RadioBtn_Mode1'.$row1['ID'].'" type="radio" value="False" checked/></td>';
                        echo '<td>True : <input class="RadioBtn_Mode1" id="'.$row1['ID'].'" name="RadioBtn_Mode1'.$row1['ID'].'" type="radio" value="True"/></td>';
                        } else {
                        echo '<td>False : <input class="RadioBtn_Mode1" id="'.$row1['ID'].'" name="RadioBtn_Mode1'.$row1['ID'].'" type="radio" value="False"/></td>';
                        echo '<td>True : <input class="RadioBtn_Mode1" id="'.$row1['ID'].'" name="RadioBtn_Mode1'.$row1['ID'].'" type="radio" value="True" checked/></td>';
                        }
                    if ($row1['Mode2']=='False'){
                        echo '<td>False : <input class="RadioBtn_Mode2" id="'.$row1['ID'].'" name="RadioBtn_Mode2'.$row1['ID'].'" type="radio" value="False" checked/></td>';
                        echo '<td>True : <input class="RadioBtn_Mode2" id="'.$row1['ID'].'" name="RadioBtn_Mode2'.$row1['ID'].'" type="radio" value="True"/></td>';
                        } else {
                        echo '<td>False : <input class="RadioBtn_Mode2" id="'.$row1['ID'].'" name="RadioBtn_Mode2'.$row1['ID'].'" type="radio" value="False"  /></td>';
                        echo '<td>True : <input class="RadioBtn_Mode2" id="'.$row1['ID'].'" name="RadioBtn_Mode2'.$row1['ID'].'" type="radio" value="True" checked /></td>';
                        }

            echo    
            '</td>
            </tr>'; 

        }           
?>
</tbody>
        </table>

</div>  
</form>     
</body>
</html>

<?php
sqlsrv_close($con);
?>

我想請高手告訴我我可以做得更好,並幫助我將單選按鈕變成數據插入的復選框。 SQL 格式表是 BIT,所以我想在我選中/取消選中時插入 true/false,就像我對按鈕一樣。 謝謝 !

無需重寫答案中的所有代碼復選框的想法,是否標記。 瀏覽器傳遞給服務器的輸入,只有勾選了復選框才通過

所以復選框 PHP 代碼應該檢查isset($_POST['RadioBtn_Mode2'] . $row1['ID']); 這里有一個簡單的參考 這幾乎是你已經做的所有剩下的就是改變 html 的回顯,基本上每個單選按鈕刪除一個標簽,並將類型更改為復選框

例如,從這里:

                echo '<td>False : <input class="RadioBtn_Mode2" id="'.$row1['ID'].'" name="RadioBtn_Mode2'.$row1['ID'].'" type="radio" value="False"  /></td>';
                echo '<td>True : <input class="RadioBtn_Mode2" id="'.$row1['ID'].'" name="RadioBtn_Mode2'.$row1['ID'].'" type="radio" value="True" checked /></td>';

對此:

               echo '<td>Check: <input class="RadioBtn_Mode2" id="'.$row1['ID'].'" name="RadioBtn_Mode2'.$row1['ID'].'" type="checkbox" value="False"  /></td>';

一旦成功,將通用名稱 RadioBtn 更改為 CheckBx(或其他任何名稱)當然是美學上的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM