php
2013-02-08 98 views -2 likes 
-2

我想能夠寫是一個字符串,它是一個數組將被存儲在數據庫中的賈森字符串。我的代碼遍歷複選框,但我希望能夠待辦事項是測試如果$輸入名稱爲「利益」寫出複選框列表爲json字符串數組php

<input type="checkbox" name="interests[]" value="dvd" />` <-- checkbox lists 

,我不能讓其他的事情是把周圍像例如,每個$值報價「DVD」, 「電腦」

$interests = '['; 
$count = 1; 
$counter = count($_POST["interests"]); 
foreach($_POST as $checkbox => $input) { 
    if(is_array($input)) { 
    // test here is input is "interests"  
     foreach($input as $index => $value) { 
      $interests .= /*quote here*/ $value /*quote here*/ .= ($count < $counter) ? ',' : ''; 
      $count += 1; 
     } 
    } 
} 
$interests .= ']'; 
echo $interests; 

利益,是想寫出[ 「DVD」, 「電腦」, 「硬盤」] ,但只寫了[DVD,電腦,硬盤]

回答

1
$_POST["interests"] = array("dvd", "computers", "hard drives"); 
$interests = '["' . implode('","', $_POST["interests"]) . '"]'; 
echo $interests; 

See it in action

+0

爲什麼要在代碼中分配'$ _POST ['interest']'值? – Jon

+0

爲了演示的目的 –

+0

謝謝 - 這幫了我很多歡呼 – ONYX

0

使用json_encode()代替手動創建JSON:

echo json_encode($_POST['interests']); 

輸出

[ 「DVD」, 「電視」, 「無線電」]

0

嘗試此,

$interests = ''; 
$count = 1; 
$counter = count($_POST["interests"]); 
foreach($_POST as $checkbox => $input) { 
    if(is_array($input)) { 
    // test here is input is "interests"  
     foreach($input as $index => $value) { 
      $interests .= $value .= ($count < $counter) ? ',' : ''; 
      $count += 1; 
     } 
    } 
} 
$interests = json_encode($interests); 
echo $interests; 
相關問題