2016-09-27 28 views
1

實際上,我成功獲取數據,但複選框未顯示檢查值。也許這個邏輯是錯誤的。而且有必要在這裏使用的foreach,我們不能在值字段直接回聲,我是新來這,也許是失誤都傻如何將複選框值更新爲codeigniter中的頁面

視圖

<html> 
<?php 
foreach($post_id as $data){ 

    $a=$data->id; 
    $b=$data->name; 
    $c=$data->email; 
    $d=json_decode($data->skills); 
    $e=$data->notes; 
    $f=$data->gender; 
} 
?> 
<?php var_dump($d);?> 
<?php var_dump($f);?> 
<body> 
<form method="post" action="<?php echo site_url('Student_info/update'); ?>"> 
<table> 
<tr> 
<td>ENTER NAME</td> 
<td><input type="text" name="name" value="<?php echo $b; ?>"></td> 
</tr> 
<tr> 
<td>ENTER EMAIL </td> 
<td><input type="email" name="email" value="<?php echo $c; ?>"></td> 
</tr> 
<tr> 
<td>ENTER SKILLS</td> 
<td> 
<input type="checkbox" name="skills[]" value="php" <?php if($d == "php"){echo 'checked="checked"'; } ?>>php<br> 
<input type="checkbox" name="skills[]" value="dotnet" <?php if($d == "dotnet"){echo 'checked="checked"'; } ?> >dotnet<br> 
<input type="checkbox" name="skills[]" value="java" <?php if($d == "java"){echo 'checked="checked"'; } ?>>java<br> 
<input type="checkbox" name="skills[]" value="ruby_on_rails" <?php if($d == "ruby_on_rails"){echo 'checked="checked"'; } ?> >ruby_on_rails<br> 
</td> 
</tr> 
<tr> 
<td>NOTES</td> 
<td> <textarea name="notes" rows="4" cols="50"><?php echo $e; ?></textarea> </td> 
</tr> 
<tr> 
<td>GENDER</td> 
<td> <input type="radio" name="gender" value="male" <?php if($f == "male"){echo 'selected="selected"'; } ?>> Male<br> 
    <input type="radio" name="gender" value="female" <?php if($f == "Female"){echo 'selected="selected"'; } ?>> Female<br> </td> 
</tr> 
<tr> 
<td></td> 
<td><input type="submit" name="add" value="submit"/></td>  
</tr> 
</table> 
</form> 
</body> 
</html> 
+0

'的print_r($ _ POST)'先檢查陣列,不知道在哪裏之前開始PHP的標籤在你的視圖文件'foreach($ post_id as $ data){',也顯示這個函數:'Student_info/update',最後的地方是''?關閉標籤? – devpro

+0

在'Student_info/update'中使用'print_r($ _ POST)'並共享結果。 – devpro

+0

@devpro我無法看到檢查值,當我去編輯頁面,這是問題,請參閱$ d有所有檢查的值,我也用var_dump($ d)來檢查這 – mickey

回答

1

這個$d的結果是一個對象不一個字符串值,因爲你在這裏使用json_decode()

$d=json_decode($data->skills); // this will produce an object 

您可以使用in_array(),但爲此,你需要在json_decode()功能使用第二PARAM如屬實,這將返回結果的數組,是這樣的:

$d=json_decode($data->skills,TRUE); // this will return an array 

比你可以檢查這樣的:

<input type="checkbox" name="skills[]" value="php" <?=(in_array("php",$d) ? 'checked=""' : '')?>>php 
+0

謝謝@devpro它的工作。 – mickey

+0

@mickey:很高興幫助你:) – devpro

相關問題