2011-01-04 35 views
0

私はこの問題について数日間インターネットを検索してきましたが、私はまだレンガの壁に向かっています。チェックボックスを使用するとMySqlテーブルが更新されます

私が持っているのは、毎月の「予定」リストとして機能する管理領域内のチェックボックスでいっぱいのテーブルです。これは本質的に毎月30回程度の作業を行うワークシートで、毎月チェックアウトする必要があります。

私はmysqlを介して更新するチェックボックスを取得し、ダニのリストとしてどこかに表示することができました。私は単にこの値を1に設定し、サブミッションでSQLテーブルを更新しました。

ここで私の拠点をカバーする必要があります。また、間違っていれば、項目のチェックを外すオプションもあります。しかし、私はこれがどのように行われるのか把握できません。

以下は私のチェックコードです...この問題についての助けがあれば素晴らしいでしょう。

<?php 
$currentTask = ''; 
echo "<tr class='tr'>"; 
while ($seolistRow = mysql_fetch_array($seolistRes)) { 
    $taskValue = $seolistRow["taskValue"]; 
    $worksheetID = $seolistRow["worksheetID"]; 
    $taskName = $seolistRow["taskName"]; 
    $taskInfo = $seolistRow["taskInfo"]; 

    if ($taskValue == 1) { 
      $taskDone = "<input type='checkbox' value='1' class='checkbox' name='checkbox".$worksheetID."' id=checkbox'".$worksheetID."' checked='checked' /><div class='taskinfo'>".$taskInfo."</div>"; 
    } 
    else { 
      $taskDone = "<input type='checkbox' value='0' class='checkbox' name='checkbox".$worksheetID."' id='checkbox".$worksheetID."' />"; 
    } 
    if ($currentTask != $taskName) { 
     echo "</tr>"; 
     echo "<tr class='tr'>"; 
     echo "<td class='task'>".$taskName."</td>"; 
    } 
echo "<td class='tick'>".$taskDone."</td>"; 
$currentTask = $taskName; 
} 
echo "</tr>"; 
?> 

編集:

私は次のコードを使用してDBに保存します。私は、チェックボックスをチェックするとき

if (isset($_POST["update"])) { 
$item = $_POST; 
    foreach($item as $key => $value) { 
     $wsID = str_replace("checkbox","",$key); 

     if (is_numeric($wsID)) { 
      $updateWSQ = "UPDATE seo_work SET taskValue=$value WHERE worksheetID=$wsID AND userID=$userID"; 
      mysql_query($updateWSQ) or die(mysql_error()); 
      header("Location: worksheet.php?userID=$userID&action=success"); 
     } 
    } 

}

私はそれが何をしたいです(それはそれのために働く)が、チェックボックスのチェックを外すとき私は値を取り除き、それを0に置き換えたいと思う。

これは、顧客ごとに表示される安全なログイン領域に表示されます。これは複数のユーザーのログイン/チェックボックスシステムです。

、つまり10人がログインして予定リストを更新できるようになると、20人のユーザー/視聴者がどのような進捗状況が確認できるのですか。

テーブルに表示されるデータを取得することは問題ではありません.db "taskValue"を1から0および0から1に変更することに問題があります。

+0

保存コードもありがとう、ありがとう。 – Bobby

+0

あなたはボックスのチェックを外すとそれはうまくいかないと言っていますか? – benhowdle89

+0

あなたの 'post'コードとDBアップデートも提供してください! – ifaour

答えて

0

これを試してみてください:

<?php 
if (count($_POST['task'])) { 
    $q = "update task_table set taskValue=0"; 
    mysql_query($q); 

    foreach($_POST['task'] as $k=>$v) { 
    $q = "update task_table set taskValue=1 where worksheetID=$k"; 
    mysql_query($q); 
    } 
} 
?> 
<form action="" method="post"> 
<?php 
while ($seolistRow = mysql_fetch_array($seolistRes)) { 
    $taskValue = $seolistRow["taskValue"]; 
    $worksheetID = $seolistRow["worksheetID"]; 
    $taskName = $seolistRow["taskName"]; 
    $taskInfo = $seolistRow["taskInfo"]; 
    echo '<input type="checkbox" name="task['.$worksheetID.']" id="task_'.$worksheetID.'"'.(($taskValue)?' checked="checked"':'').' />'; 
} 
?> 
<input type="submit" value="submit" /> 
</form> 

をこのようなもので、あなたの土地:

<form action=""> 
<input type="checkbox" name="task[1]" id="task_1" checked="checked" /> 
<input type="checkbox" name="task[2]" id="task_2" /> 
<input type="checkbox" name="task[3]" id="task_3" checked="checked" /> 
<input type="checkbox" name="task[4]" id="task_4" checked="checked" /> 
<input type="submit" value="submit" /> 
</form> 

クエリが自動的にチェックボックスがチェックされているかどうか、データベースを更新します。 1ページ、1つのチェック/チェック解除スクリプト。

0

これにはjQueryを使用できます。

<script> 
$(document).ready(function() { 
    $("input[type=checkbox]").click(function() { 
     var isSel = this.checked; 
     $.ajax({ 
      url: 'urlToYourScriptThatExecuteSQL.php', 
      type: 'POST', 
      dataType: 'json', 
      data: { 
       id : this.id, 
       isSelected : isSel 
      }, 
      success: function(data) { 
       alert('nice'); 
      }, 
      error: function() { 
       alert('error'); 
      } 
     }); 
    }); 
}); 
</script> 

注:お使いのurlToYourScriptThatExecuteSQL.php$_POST['id']$_POST['isSelected']を受けます。

関連する問題