2016-05-04 20 views
0

私はユーザ登録ページを設計しました。それは1つのフィールドの趣味を持っています。私はチェックボックスの助けを借りてフィールドを設計しました。ユーザーが2つ以上の趣味を選択した場合、趣味IDをデータベースに保存しました。今私は自分のプロフィール編集ページで特定のユーザーによってすべて選択されている趣味の名前を表示する必要があります。私は以下のコーディングを行ったが、選択されていないデータベースからのチェックボックス名を表示する。ユーザーが選択したチェックボックスの名前を確認する必要があります。しかし、それはしません。何か助けてください。チェックされたすべてのチェックボックスの値をmysqlから表示し、テーブルに表示します

<?php 
$query = "SELECT * FROM hobbies"; 
$result = mysqli_query($con, "$query"); 
while ($r=mysqli_fetch_array($result)){ 
    $hobbyid=$r["hobby_id"]; 
    $hobbyname=$r["hobby_name"]; 
    if($hobby==$r[0]){ //Here $hobby is the hobby id which is entered by the user when registration. That hobby id is saved in the db. 
     echo "<input type='checkbox' checked name='check_list[]' value='echo $hobbyid;'> $hobbyname"; 
    }else{ 
     echo "<input type='checkbox' name='check_list[]' value='echo $hobbyid;'> $hobbyname"; 
    } 
} 
?> 
+0

'value = 'echo $ hobbyid;''を 'value = '$ hobbyid;''に変更してください。 'echo'の必要はありません。 – Pupil

+0

'$ hobby'と' $ h [0] 'を比較するのは本当ですか? – Epodax

+0

私は価値を変更する= '$ hobbyid;'どこで$ rを印刷する必要がありますか? – Jebil

答えて

0

私は、コードの下にしようと、それは私が望んでいたされた結果を与えます。

<?php 
    $query = "SELECT * FROM hobbies"; 
$flag=false; 
$result = mysqli_query($con, "$query"); 

while ($r=mysqli_fetch_array($result)) 
{ 
$hobbyid = $r["hobby_id"]; 
$hobbyname = $r["hobby_name"]; 
$hob_id=explode(',',$hobby); 
$size = sizeof($hob_id); 
for($i=0;$i<$size;$i++) 
{ 
    if($hob_id[$i]==$hobbyid) 
    { 
    $flag=true; 
    } 
} 
if($flag==true) 
{ 
     ?> 
    <input type='checkbox' name='check_list[]' value="<?php echo $r['hobby_id']; ?>" checked > <?php echo $r['hobby_name']; ?> <br> 
    <?php 
    $flag=false; 
} 
else 
{ 
    ?> 
    <input type='checkbox' name='check_list[]' value="<?php echo $r['hobby_id']; ?>"> <?php echo $r['hobby_name']; ?> <br> 
    <?php 
} 
} 
?> 
0
Try again with below code segment. I have modified your code. 
<?php 
$query = "SELECT * FROM hobbies"; 
$result = mysqli_query($con, "$query"); 

while ($r=mysqli_fetch_array($result)) { 
    $hobbyid = $r["hobby_id"]; 
    $hobbyname = $r["hobby_name"]; 

    $isChecked = ''; 
    if($hobby == $r["hobby_id"]) { //Here $hobby is the hobby id which is entered by the user when registration. That hobby id is saved in the db. 
     $isChecked = "checked='checked'"; 
    } 

    echo "<input type='checkbox' $isChecked checked name='check_list[]' value='$hobbyid;'/> $hobbyname"; 
} 
?> 
+0

データベース内のすべてのオプションをすべてチェックしました。 – Jebil

+0

しかし、私はユーザーがチェックしたものだけを表示する必要があります。 – Jebil

+0

$ hobbyがユーザーによって選択されたものを保持している場合、上記のコードは動作するはずですが、期待どおりに動作しないコードがいくつかあります。 – Thushan

関連する問題