0

コンピテンスの名前が異なるテーブルと、コンピテンス ID とそのコンピテンスを持つユーザー ID を含む別のテーブルがあります。特定のユーザーに適用される能力を提出するフォームがあります。ここで、有効な場合に備えて、これらの能力とチェック ボックスを取得したいと考えています。このコードを使用していますが、機能していないようです。

<?php
include "db.php";
$employees=mysql_query("SELECT * FROM asiakas");

echo "<form method='post' action='' id='employeesselection'><select name='select_employee' id='select_employee'>";
while($row=mysql_fetch_array($employees)){
        $selected = ($row['Id'] == $_POST['select_employee'])?'selected="selected"':'';
        echo '<option '.$selected.' value="'.$row['Id'].'">'.$row['Etunimi'].' - '. $row['Sukunimi'].'</option>';

    }
echo "</select><input type='hidden' name='action' value='selectedemployee'>
        <input type='submit' value ='submit' name='submit'><br/>";

if(isset($_POST['select_employee'])){
    $specific=mysql_query("SELECT Id, Sukunimi,Etunimi from asiakas WHERE Id=".$_POST['select_employee']);
    $sp=mysql_fetch_array($specific);
}
if(isset($sp['Etunimi']) && isset($sp['Sukunimi'])){
        $comp=mysql_query("SELECT * FROM Competences"); 
        echo "<br/>select competences for: ". $sp['Etunimi'];
        $id= $sp['Id'];

        $result=mysql_query("SELECT distinct c_ID from User_Competence WHERE e_ID=".$id);
        while($test=mysql_fetch_array($result))
        {
            echo $test['c_ID']; 
        }


        echo "<table><th>valid?</th><th>Competence description</th>";

        $counter=0;
        $traverse=0;

        while($compi=mysql_fetch_array($comp)){
            $checked='';
            if($test[$traverse]==$counter){
                $checked="checked";
                $traverse++;
            }
            $counter ++;
            echo "<tr><td><input type='checkbox'" .$checked." name='c[]' value='".$compi['Competence_ID']."'></td><td>".$compi['Competence_Description']."</td></tr>";
            }
            echo "</table>";
            echo "<input type='hidden' name='action' value='selectchecked'>";
            echo "<input type='submit' value='submit checks'>"; 
        }

        if(isset($_POST) && !empty($_POST)){
            print_r($_POST);
        }
        if(isset($_POST['action']) && $_POST['action']='selectchecked'){

            if (isset($_POST['c'])){
                $s = $_POST['c'];

                foreach ($s as $k => $v) {

                    if (is_array($v)) {

                        //  array_push($s, implode('', array($v [$what])));

                    }
            };
                echo $abc= implode(',', $s);

                for ( $a=0;$a<count($s);$a++){          
                    $ar=explode(',',$abc);
                    echo $var= $ar[$a];
                    $q=mysql_query("INSERT INTO user_competence(c_ID, e_ID) VALUES ('".$var."','".$id."')");

                }
            }

        }
        echo "</form>"; 
?>
4

1 に答える 1

0

checkedに属性として配置すると、属性<input type="checkbox">の実際の値を空のままにしても、チェックされます。

したがって、次の部分を次のように変更します...

$checked="checked";
...
echo "<tr><td><input type='checkbox' checked='".$checked."' name='c[]' ...

の中へ...

$checked="checked='checked'";
...
echo "<tr><td><input type='checkbox' ".$checked." name='c[]' ...

つまり、$test[$traverse$]true の場合checked='checked'は HTML に配置され、それ以外の場合は除外されます。

于 2013-03-11T14:23:00.570 に答える