2016-01-08 71 views
1

我想使用复选框来填充特定格式的数据库中的单个字符串。我可以成功地打印数组,但我不明白如何将其分配给变量以便连接到数据库并再次在该站点的其他位置使用。下面是HTML:分配复选框数组到变量

<input type="checkbox" id="bookCodes" name="bookCodes[]" value="C">Commercials 
<input type="checkbox" id="bookCodes" name="bookCodes[]" value="CP">Commercial Print 
<input type="checkbox" id="bookCodes" name="bookCodes[]" value="V">Voice Overs 
<input type="checkbox" id="bookCodes" name="bookCodes[]" value="X">Background Work 
<input type="checkbox" id="bookCodes" name="bookCodes[]" value="F">Film 
<input type="checkbox" id="bookCodes" name="bookCodes[]" value="TV">Television 
<input type="checkbox" id="bookCodes" name="bookCodes[]" value="BT">Business Theatre Industrials 
<input type="checkbox" id="bookCodes" name="bookCodes[]" value="I">Film Industrials 
<input type="checkbox" id="bookCodes" name="bookCodes[]" value="MV">Music Videos 

PHP:

foreach($_POST['bookCodes'] as $codes) { 
    print "(".$codes.")"; 
}; 

我希望打印的字符串等于$bookCodes。我已经尝试把数组放入一个函数中,但是只有第一个值。这是代码:

function prepBookCodes ($value) 
{ 
    if (isset($_POST[$value])) { 
     foreach ($_POST[$value] as $codes) { 
      return "(" . $codes . ")"; 
     } 
    } 
} 
$bookCodes = prepBookCodes('bookCodes'); 

print $bookCodes; 

任何帮助将不胜感激!

回答

1

连接是答案。让你的函数返回一些请!

function prepBookCodes ($value) 
{ 
    if (isset($_POST[$value])) { 
     foreach ($_POST[$value] as $codes) { 
      $string .= "(" . $codes . ")"; 
     } 
    } 

    return $string; 
} 
$bookCodes = prepBookCodes('bookCodes'); 
2

你的第一个声明中没有把它当作一个数组:

<input type="checkbox" id="bookCodes" name="bookCodes" value="C">Commercials 

应该

<input type="checkbox" id="bookCodes" name="bookCodes[]" value="C">Commercials 
+0

谢谢,我错过了。它仍然没有工作。我从PHP段获得相同的结果。 –

0
function prepBookCodes ($value) 
{ 
    if (isset($_POST[$value])) { 
     foreach ($_POST[$value] as $codes) { 
      echo "(" . $codes . ")"; 
     } 
    } 
} 
0

也许你可以连接后的值到一个变量$bookCodes

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    if (isset($_POST['bookCodes'])) { 
     $bookCodes = ''; 
     foreach ($_POST['bookCodes'] as $codes) { 
      $bookCodes .= "(" . $codes . ")"; 
     } 
     print $bookCodes; 
    } 
} 

如果您例如检查所有的复选框,则$bookCodes变量将包含:

(C)(CP)(V)(X)(F)(TV)(BT)(I)(MV)