2013-07-20 130 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

这实际上解决了我的其他问题之一=)谢谢!现在一切正常。 –