2017-10-10 28 views
-1

我使用PDOforeachecho生成从数据库中的数据某种形式的输入,输出在这个例子中看起来slimier这样:分配后的值

<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

使用HTML和你的数组将在php中有一个数组: ' jeroen

+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; 
+0

它帮助...谢谢! – Hakerovsky

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); 
    }  
} 
?> 
+0

我正在使用相同的页面,'implode'就是我正在寻找的.. – Hakerovsky