2013-07-20 127 views
0

感謝您抽出時間看看這個。我一直在處理這個惱人的foreach循環。這是我想要做的。在foreach循環中運行的函數

我有第一頁「form.php」。 在這個頁面上我有複選框。每個複選框都是從數據庫表中生成的。下面是代碼:

<?php 
include("config.php"); 
$mysqli = new mysqli($host, $db_uname, $db_pass, $db); 
$query = "SELECT * FROM `plugins` WHERE 1"; 

if ($result = $mysqli->query($query)) { 

    echo '<form action="test.php" method="post"> 
      <input name="gname" placeholder="Group Name..."/> 
       <table width="200"> 
        '; 

    while ($row = $result->fetch_assoc()) { 

echo '<tr><td> 
     <label> 
      <input type="checkbox" value="'.$row["plugin"].'" name="checkbox[]"> 
      '.$row["plugin"].' 
     </label> 
     </td></tr>'; 

    } 
    echo ' 
      </table> 
      <select name="permplugin"> 
      <option>Select One...</option>'; 

$query2 = "SELECT * FROM `permission_types` WHERE 1"; 

if ($result2 = $mysqli->query($query2)) { 
echo '<h3>Select Permission format below</h3><hr />'; 
while ($row2 = $result2->fetch_assoc()) { 
echo ' 
<option value="'.$row2["plugin_name"].'">'.$row2["plugin_name"].'</option>'; 
} 
echo ' 
</select> 
<br /> 
<input name="" type="reset"><input name="" type="submit"> 
</form>'; 
} 
} 
?> 

現在,它發出的檢查框「test.php的」 這裏是該代碼:

<?php 
if(!empty($_POST['checkbox']) || !empty($_POST['select']) || !empty($_POST['gname'])) { 
    echo '<h1>'.$_POST['gname'].'</h1>'; 

    $check1 = $_POST['checkbox']; 
    foreach($check1 as $check) { 
     include "functions.php"; 
      checkboxes($check); 

    } 
    echo '<h3>Selected Permission format below</h3><hr />'; 
    echo $_POST['permplugin']; 

} else { 

    echo "please select atleast one plugin."; 
} 
?> 

的功能頁面的代碼如下所示:

<?php 
//all functions are here. 
function checkboxes($check){ 
$mysqli_perm = new mysqli("localhost", "uname", "pword", "tcordero_permnodes"); 
$query_perm = "SELECT * FROM permission_nodes WHERE plugin = `$check`"; 
if ($result_perm = $mysqli_perm->query($query_perm)) { 
    echo $check; 
    /* fetch associative array */ 
    while ($row_perm = $result_perm->fetch_assoc()) { 
     echo $row_perm['node'].'<br />'; 

    } 
    unset($check); 
} 
} 

當我運行test.php的我得到這個錯誤: 致命錯誤:不能重新聲明覆選框()(以前用C宣稱:\ XAMPP \ htdocs中\ TPYC \的functions.php:3) C:\ xampp \ htdocs \ TPYC \ functions.php on line 15

我在做什麼錯?

+0

首先,'WHERE插件= \'$檢查\'''應該改爲單一配額' ''這樣'WHERE插件=' $ check'' – 2013-07-20 01:09:47

+0

你我的朋友是最好的!謝謝! –

+0

所以你的問題解決了? – 2013-07-20 01:13:11

回答

1

您需要將include包括在foreach循環中。試試這個:

include "functions.php"; 
foreach($check1 as $check) { 
    checkboxes($check); 
} 
+0

這實際上解決了我的其他問題之一=)謝謝!現在一切正常。 –