2010-04-17 138 views
0

我有一個註冊表格,其中包含checkboxes以及其他字段。我無法將所選的checkbox值插入到數據庫中。我在數據庫中創建了一個字段來存儲所有選中的值。插入複選框值

這是在形式checkbox部分的代碼:

<pre><input type="checkbox" name="expertise[]" value="Websites,IT and Software"> Websites, IT and Software <input type="checkbox" name="expertise[]" value="Writing and Content"> Writing and Content </pre> 
<pre><input type="checkbox" name="expertise[]" value="Design and Media"> Design and Media   <input type="checkbox" name="expertise[]" value="Data entry and Admin"> Data entry and Admin </pre> 
<pre><input type="checkbox" name="expertise[]" value="Engineering and Skills"> Engineering and Science  <input type="checkbox" name="expertise[]" value="Seles and Marketing"> Sales and Marketing </pre> 
<pre><input type="checkbox" name="expertise[]" value="Business and Accounting"> Business and Accounting  <input type="checkbox" name="expertise[]" value="Others"> Others </pre> 

,這是用於將數據

$checkusername=mysql_query("SELECT * FROM freelancer WHERE fusername='{$_POST['username']}'"); 

    if (mysql_num_rows($checkusername)==1) 
    { 
     echo "username already exist"; 
    } 
    else 
    { 
     $query = "insert into freelancer(ffname,flname,fgender,femail,fusername,fpwd,fphone,fadd,facc,facc_name,fbank_details,fcity,fcountry,fexpertise,fprofile,fskills,fhourly_rate,fresume) values 

     ('".$_POST['first_name']."','".$_POST['last_name']."','".$_POST['gender']."','".$_POST['email']."','".$_POST['username']."','".$_POST['password']."','".$_POST['phone']."','".$_POST['address']."','".$_POST['acc_num']."','".$_POST['acc_name']."','".$_POST['bank']."','".$_POST['city']."','".$_POST['country']."','".implode(',',$_POST['expertise'])."','".$_POST['profile']."','".$_POST['skills']."','".$_POST['rate']."','".$_POST['resume']."')"; 

     $result = 

     ($query) or die (mysql_error()); 

此代碼插入數據的所有字段,但該複選框對應的PHP代碼值字段保持空白。

+0

你真的有'$結果=($查詢)或死亡(mysql_error());'在你的代碼或吧'$結果= mysql_query($查詢)或死亡(mysql_error());'? – VolkerK 2010-04-18 21:23:27

回答

0

您已經通過「[]」(expertise [])在HTML中定義了一個數組,並且在PHP中使用了值$ _POST ['expertise']。我建議使用:

<input type="checkbox" name="expertise" value="Design and Media" /> Design and Media 

編輯:

嘗試用var_dump($ _ POST [ '專業知識'])來查看變量$ _ POST內容[ '專業知識'。該功能通常有很大幫助。

+0

我試過這個,但它仍然沒有插入複選框值 – rabeea 2010-04-17 10:01:01

+0

好吧,你是一步。測試你在$ _POST ['expertise']中獲得的值,然後添加插入到數據庫的代碼。 – 2010-04-17 10:07:26

+0

你有兩種選擇:1)在html中使用專家[],然後你不能簡單地把所有的值放在數據庫中的一個記錄中,因爲一列應該保存一個值(你可以繞過它,但這往往是不好的做法) 。 2)使用單選按鈕而不是複選框讓用戶選擇一個項目,然後可以使用當前SQL查詢將值添加到數據庫。 – 2010-04-17 10:12:16

1

在這些專業包括陣列,所以採用這種

$exp = $_POST["expertise"]; 
$fulexp = implode(",", $exp); 
// echo $fulexp; 

它會給所有複選框VALU的正確結果

+0

這不太工作 – rabeea 2010-04-17 10:01:16

+0

我工作過後,只有我提供瞭解決方案。請檢查..我的輸出都出現類似這樣的,如果我選擇兩種方式輸出將是 數據錄入和管理,塞萊斯和營銷 請再次檢查。 如果你在你的數據庫中使用的意思是插入查詢本身,你可以使用像 implode(「,」,$ _POST [「expertise」]); – Karthik 2010-04-17 11:39:10

0

$_POST["expertise"];只會返回最後選中複選框用戶如果檢查你從專業知識[]更改複選框名稱。