我使用PDO
,foreach
和echo
使用数据库中的数据生成一些表单输入,此示例的输出看起来更加简洁:
<input type="checkbox" value="1" checked>Google
<input type="checkbox" value="2">Amazon
<input type="checkbox" value="3" checked>Microsoft
这是在张贴到同一页面的表单中使用的。 我想获取这些数据并使用PHP变量将其存储在数据库中,因此当选中该复选框时,会将值分配给它:
// output
$data = '1,3';
请注意,该复选框由用户检查,此处使用的数据只是一个示例,我希望表单能够通过用户输入收集正确的数据。
答案 0 :(得分:2)
将复选框的名称命名为数组,因此当您提交表单时,您将在数组中获得一个复选框值数组,并选中复选框,然后您可以用,
逗号分隔该数组。
<input type="checkbox" name="checkboxname[]" value="1" checked>Google
<input type="checkbox" name="checkboxname[]" value="2">Amazon
<input type="checkbox" name="checkboxname[]" value="3" checked>Microsoft
提交表单后,您必须获得如下代码的值。
$data = implode(",", $_POST['checkboxname']);
echo $data;
答案 1 :(得分:0)
你可以使用jquery: 例如: HTML:
<input type="checkbox" value="1">Google
<input type="checkbox" value="2">Amazon
<input type="checkbox" value="3">Microsoft
<button type="submit" id="btn">Submit</button>
JQUERY:
$(document).ready(function(){
$('#btn').on('click',function(){
var cboxVal = [];
$('input[type="checkbox"]:checked').each(function(i){
cboxVal[i] = $(this).val();
});
$.ajax({
url : 'insert_data.php',
method : 'POST',
data : {cval:cboxVal},
dataType: 'text',
async : false,
success : function(){
alert('data inserted!');
}
});
});
PHP:
<?php
if(isset($_POST['cval'])){
$cval_raw = $_POST['cval'];
for($i =0; $i<count($cval_raw);$i++){
$cval = $cval_raw[$i];
$sql = "INSERT INTO db_name(table_name) VALUES('$cval')" or die('cannot insert');
$query = mysqli_query($connect,$sql);
}
}
?>