2014-04-08 61 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循環來管理這些值。