[英]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'].' </td>
<td>'.$row1['Data'].' </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.