2012-10-01 103 views
0

我有一個函數,它在2個PARAMS($基,$陣列)HTML複選框功能到PHP輸出

$組=「名稱」的輸入的屬性 $陣列=複選框的數組值

function checkboxes($group, $array) { 
    $string = NULL; 
    $group = (string)$group."[]"; 
    foreach($array as $key => $value) { 
     $string .= "<br /><input type='checkbox' id=".$value." name='".$group."'  value='".$value."' /><label for=".$value.">$value</label>"; 
    } 
    return $string; 
} 

我想要做的是將其轉換爲正確的HTML,以便我可以在腳本中處理值。

這裏是輸入:

checkboxes("class", array("Warrior","Mage","Priest","Rogue")); 


$boxes = $_POST['class']; 
for ($i=0; $i<count($boxes); $i++) { 
    echo $boxes[$i]; 
} 

輸出:「R」(當一個以上的被檢查爲好)

任何幫助將是巨大的,對不起,如果我忘了什麼。

這是家庭作業,所以不要給我答案,請打破我的學校榮譽代碼stackoverflow條款!

+0

我不明白你正在嘗試做的,'複選框(「類」,陣列(「戰士「,」法師「,」牧師「,」流氓「));'已經用'class'輸出html代碼作爲數組。 –

+0

不,它不輸出任何內容。它返回一個連接的字符串,其中包含將該數組轉換爲可接受的html語句所需的HTML –

+0

我剛剛測試了您的代碼並且工作完美無缺。 –

回答

1

試試這個。它似乎打印所有選中的框。

<?php 
function checkboxes($group, $array) { 
    $string = NULL; 
    $group = (string)$group."[]"; 
    foreach($array as $key => $value) { 
     $string .= "<br /><input type='checkbox' id=".$value." name='".$group."'  value='".$value."' /><label for=".$value.">$value</label>"; 
    } 
    return $string; 
} 

if(isset($_POST[ 'class' ])) { 
    $boxes = $_POST['class']; 
    for ($i=0; $i<count($boxes); $i++) { 
     echo $boxes[$i] . '<br />'; 
    } 

} 
?> 
<form action="t23.php" method="POST"> 
    <?php 
    echo checkboxes("class", array("Warrior","Mage","Priest","Rogue")); 
    ?> 
    <input type="submit" name="btnOutput" value="submit"/> 
</form> 
+0

他如何做到這一點,因爲'$ _POST ['class']'是'class []'? –

+0

我也是這樣做的,只是輸出「Rogue」(陣列中的最後一個實體)。它也在表單中迴應 –

+0

@MihaiIorga - 這就是你如何處理PHP中的數組變量。 –

0

我不知道你的安排是如何在你的頁面,但:

<?php 
    if(isset($_POST) && !empty($_POST['class'])){ 
     echo 'SELECTED: <br /><br />'; 
     $boxes = $_POST['class']; 
     for ($i=0; $i<count($boxes); $i++) { 
      echo $boxes[$i].'<br />'; 
     } 

    } 

    function checkboxes($group, $array) { 
     $string = NULL; 
     $group = (string)$group."[]"; 
     foreach($array as $key => $value) { 
      $string .= "<br /><input type='checkbox' id=".$value." name='".$group."'  value='".$value."' /><label for=".$value.">$value</label>"; 
     } 
     return $string; 
    } 
    echo '<form method="post">'; 
    $boxes = checkboxes("class", array("Warrior","Mage","Priest","Rogue")); 
    echo $boxes; 
    echo '<input type="submit">'; 
?>