0
好了,我正在寫一個任務管理器的腳本,我有帶標記的子任務的完成或沒有完成的一些問題..我的代碼如下...深嵌套的if語句發出
if($_POST['finished']){ // $_POST['finished'] is an html array of check boxes
$subtask = Subtask::find_all_by_task_id($task->id);
foreach($subtask as $stask){
foreach($_POST['finished'] as $fin){
if($stask->id == $fin){
$stask->finished_at = date('Y-m-d H:i:s', time());
$stask->save();
} elseif($stask->id != $fin){
$stask->finished_at = "";
$stask->save();
}
}
}
} else { // This works as expected when un-checking all checkboxes
$subtask = Subtask::find_all_by_task_id($task->id);
foreach($subtask as $stask){
if($stask->finished_at != null){
$stask->finished_at = null;
$stask->save();
}
}
}
我的問題我相信是if語句滾動兩個值(當前只有兩個子任務),當它達到最後的值時,所有其他$ fin不等於$ stask-> id,所以那些返回在數據庫中爲空,因此使它SEEM好像他們從來沒有更新..我怎麼能解決這是最好的途徑來解決這個如果聲明..我已經嘗試了一些變化,但無濟於事。
'子任務:: find_all_by_task_id'看起來很像模型的使用! KEWL。但是,'$ _POST ['finished']'在那裏取消選中的是什麼?您是否關閉了通知? ;) – Rudie
是的,我使用CodeIgniter和php-activerecord。它起初是一個簡單的任務組織者,現在它已經臨近一個完全成熟的項目經理......好吧,還沒有那麼遠......但仍然如此。 $ _POST ['finished']應該表示任務已完成,如果沒有檢查,它應該重新啓用任務..我想到了這一切,但我花了大約一天半的時間追捕鬼魂,出。 –