2014-04-08 30 views
-2

我试图插入多个复选框值到数据库使用Ajax,但我不知道我能为这种方法做什么。我用这些代码试了一下。在PHP + AJAX中插入多个复选框的值

 <h3 class="page-header">International Language</h3> 
         <div class="form-group"> 
         <label class="col-md-3 control-label" for="">Chinese</label> 
         <div class="col-md-7"> 
          <div class="checkbox checkbox-inline"> 
          <label> 
           <input type="checkbox" id="chinese" name="chk[]" value="chinees"> 
          </label> 
          </div> 
         </div> 
         </div> 
         <div class="form-group"> 
         <label class="col-md-3 control-label" for="">English</label> 
         <div class="col-md-7"> 
          <div class="checkbox checkbox-inline"> 
          <label> 
           <input type="checkbox" id="english" name="chk[]" value="english"> 
          </label> 
          </div> 
         </div> 
         </div> 
         <div class="form-group"> 
         <label class="col-md-3 control-label" for="">English, Welsh</label> 
         <div class="col-md-7"> 
          <div class="checkbox checkbox-inline"> 
          <label> 
           <input type="checkbox" id="englishwelsh" name="chk[]" value="englishwelsh"> 
          </label> 
          </div> 
         </div> 
         </div> 
         <div class="form-group"> 
         <label class="col-md-3 control-label" for="">Estonian</label> 
         <div class="col-md-7"> 
          <div class="checkbox checkbox-inline"> 
          <label> 
           <input type="checkbox" id="estonian" name="chk[]" value="estonian"> 
          </label> 
          </div> 
         </div> 
         </div> 
         <div class="form-group"> 
         <label class="col-md-3 control-label" for="">French</label> 
         <div class="col-md-7"> 
          <div class="checkbox checkbox-inline"> 
          <label> 
           <input type="checkbox" id="french" name="chk[]" value="frnch"> 
          </label> 
          </div> 
         </div> 
         </div> 
         <div class="form-group"> 
         <label class="col-md-3 control-label" for="">Greek</label> 
         <div class="col-md-7"> 
          <div class="checkbox checkbox-inline"> 
          <label> 
           <input type="checkbox" id="greek" name="chk[]" value="greek"> 
          </label> 
          </div> 
         </div> 
         </div> 
         <div class="form-group"> 
         <label class="col-md-3 control-label" for="">Latvia</label> 
         <div class="col-md-7"> 
          <div class="checkbox checkbox-inline"> 
          <label> 
           <input type="checkbox" id="latvia" name="chk[]" value="latvia"> 
          </label> 
          </div> 
         </div> 
         </div> 
         <div class="form-group"> 
         <label class="col-md-3 control-label" for="">Malay</label> 
         <div class="col-md-7"> 
          <div class="checkbox checkbox-inline"> 
          <label> 
           <input type="checkbox" id="malay" name="chk[]" value="malay"> 
          </label> 
          </div> 
         </div> 
         </div> 
         <div class="form-group"> 
         <label class="col-md-3 control-label" for="">Maltese</label> 
         <div class="col-md-7"> 
          <div class="checkbox checkbox-inline"> 
          <label> 
           <input type="checkbox" id="maltese" name="chk[]" value="maltese"> 
          </label> 
          </div> 

         </div> 
         </div> 
         <div class="form-group"> 
         <label class="col-md-3 control-label" for="">Swedish</label> 
         <div class="col-md-7"> 
          <div class="checkbox checkbox-inline"> 
          <label> 
           <input type="checkbox" id="swedish" name="chk[]" value="swedish"> 
          </label> 
          </div> 
         </div> 
         </div> 



    $('#btn_ielts_assesment_next').click(function() 
     { 
      var id =$("#hlast_id").val(); 
      var joboffered=$('#joboffered').val(); 
      var givenielts=$('#givenielts').val(); 
      var ieltsband=$('#ieltsband').val(); 
      var ieltspassingyear=$('#ieltspassingyear').val(); 
      var chiness=$('#chinese').val(); 
      var english=$('#english').val(); 
      var englishwelsh=$('#englishwelsh').val(); 
      var estonian=$('#estonian').val(); 
      var french=$('#french').val(); 
      var greek=$('#greek').val(); 
      var latvia=$('#latvia').val(); 
      var malay=$('#malay').val(); 
      var maltese=$('#maltese').val(); 
      var swedish=$('#swedish').val(); 
      $.post('<?php echo SERVER_ADMIN_URL;?>ajax/ielts_ajax.php',{action:"btn_ielts_assesment_next",hlast_id:id,           joboffered:joboffered,givenielts:givenielts,ieltsband:ieltsband,ieltspassingyear:ieltspassingyear,chiness:chiness, 
      english:english,englishwelsh:englishwelsh,estonian:estonian,french:french,greek:greek,latvia:latvia,malay:malay,maltese:maltese  ,swedish:swedish},function(data) 
      { 

      }); 
     }); 

<php> 

<?php 
if($_POST['action'] == 'btn_ielts_assesment_next'){ 
$table='assessment'; 
//$lang=(); 
$language=implode(","); 
$set2=array(
      'joboffered'=>$_POST['joboffered'], 
      'givenielts'=>$_POST['givenielts'], 
      'ieltsband'=>$_POST['ieltsband'], 
      'ieltspassingyear' => $_POST['ieltspassingyear'], 
      'languageknown'=>$language); 
      $main_where=array('id'=>$_POST['hlast_id']); 
      $obj_conn->Update($table,$set2,$main_where, $exclude = ''); 


} 


?><!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Untitled Document</title> 
</head> 

<body> 
</body> 
</html> 

你能帮我吗?它不工作。提前致谢!

+0

有很多方法可能会出错。你尝试过调试吗? – aldux

+0

他们只是字符串。你可以像插入任何其他字符串一样将它们插入数据库,使用'INSERT'查询和适当的[sql注入攻击](http://bobby-tables.com)避免方法。 –

回答

0

您正在使用非常漫长而麻烦的方式来获取值。使用复选框时,请尝试以下方法来获取值。

var selected = new Array(); 
$('#checkboxes input:checked').each(function() { 
    selected.push($(this).attr('name')); 
}); 

而使用可以使用这个数组来发送值。

但是,当我看到您的HTML时,您根本不需要获取单个变量,因为所有复选框的名称均为“chk []”,将数据作为数组发布。您可以直接提交表单,为所有选中的阵列将可作为:

$values = $_GET['chk']; 
echo '<pre>';print_r($values);echo '</pre>'; 

它应该给类型(注意只选中的复选框值将作为可用)的结果。

array(1=>'greek',2=>'french') etc. 

然后,您可以使用foreach循环来管理这些值。