我正在使用PHP
处理数据表。
我在第一列中有一个表格,其中有一个显示Select All
的复选框,并且每一行都有一个复选框。
当用户单击“全选”复选框时,在单击“提交”后,只有可见行的那些复选框值将被提取并显示在php中。
问题是,当我从第2页上选择一个复选框时,说我已经检查了ID 13 的澳大利亚,而我转到第3页上却什么也没有选择。然后单击“提交”,但我没有得到澳大利亚的is的$_POST
字段名称。
但是,当在澳大利亚检查并单击提交而不更改页面时,它将获取我的$_POST
详细信息。
我想知道他们是从不同页面选择多个复选框时将复选框数据获取到php的一种方法。
我正在使用最新的datatable js文件。
图像用于使开发人员理解。
以下是我的HTML代码
view.php
<
?php
require 'conn.php';
$sql = "SELECT * FROM tbl_country";
$result = $conn->query($sql);
$country_array = array();
if ($result->num_rows > 0) {
// output data of each row
while ($row = $result->fetch_assoc()) {
$country_array[] = $row;
}
} else {
echo "0 results";
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css">
</head>
<body>
<br>
<br>
<div class="container">
<form action="process.php" method="post">
<input type="submit" name="submit" value="submit">
<table class="table table-bordered" id="example" >
<thead>
<tr>
<th>
<label for="select_all">
<input type="checkbox" id="select_all" onclick="selectAll()" name="select_all" value="1" > Select All
</label>
</th>
<th>id</th>
<th>name</th>
</tr>
</thead>
<tbody>
<?php
foreach ($country_array as $value) {
?>
<tr>
<td>
<label for="select_one_<?php echo $value['country_id']; ?>">
<input type="checkbox" class="common_class" id="select_one_<?php echo $value['country_id']; ?>" name="select_one_<?php echo $value['country_id']; ?>" value="select_one_<?php echo $value['country_id']; ?>">
</label>
</td>
<td><?php echo $value['country_id']; ?></td>
<td><?php echo $value['country_name']; ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
</form>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js">
</script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js">
</script>
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js">
</script>
<script>
$(document).ready(function () {
$('#example').DataTable({
"lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]]
});
});
function selectAll() {
var is_checked = document.getElementById('select_all').checked;
if (is_checked) {
$('.common_class').prop('checked', true);
} else {
$('.common_class').prop('checked', false);
}
console.log(is_checked);
}
</script>
</body>
</html>
PHP FILE process.php代码
<?php
echo '<pre>';
print_r($_POST);
?>
PHP文件conn.php
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "tempco_cms";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
提前致谢
参考方案
使用serializeArray和Ajax提交所有复选框(选中/未选中)
var frmData = $("#my_form").serializeArray(); //my_form the id of your form
$(".common_class").each(function(){
frmData.push({name: "country_selection[]", value: $(this).val()});
});
$.ajax({
url: "your_action_url",
type: 'POST',
data: frmData,
cache: false,
success: function(result) {
},
error: function(result) {
}
});
这将发布您所有的表单字段和一个名为country_selection []的新对象数组。
在您的php中,您现在可以使用
$checkbox = $_POST['common_selection'];
for($i=0;$i<count($checkbox);$i++){
echo $checkbox[$i];
}
jQuery不起作用 - php我正在使用带有ajax的jquery。有时,给出错误$未定义。这是我的代码:<script language="javascript" type="text/javascript"> var base_path="<? echo $this->baseUrl().'/…
Div单击与单选按钮相同吗? - php有没有一种方法可以使div上的click事件与表单环境中的单选按钮相同?我只希望下面的div提交值,单选按钮很丑代码输出如下:<input id="radio-2011-06-08" value="2011-06-08" type="radio" name="radio_date…
PHP-复选框组 - php我有一个需要发布的表单复选框组。<input type="checkbox" value="true" checked name="chk0[]"> <input type="checkbox" value="false" name=…
PHP:正则表达式匹配短语不包含特定单词 - php我已经厌倦了寻找足够接近的例子,花时间寻求一些快速帮助!这是我的代码:preg_match_all( '#<li.*?>.*?</li>#s', $card_html, $activity ); 我想对其进行修改,以使<li.*?>排除单词Unplayed。 (单词出现在.*?之后和>之前。编辑:…
jQuery如果选中则启用动态输入文本 - php我正在使用PHP生成具有表格的表格,例如:<table class="table table-hover"> <thead> <tr> <th class="table-checkbox"> </th> <th> Description </…