1

チェックボックスをオンにした状態でデータベースを更新したい。

  • チェックされている場合は、データベースを1で更新します。
  • それ以外の場合は、チェックされていない場合は0で更新します。

正常に動作しますが、チェックを外すと動作しません。

<?php 
include('lib/db.php');

$facebook_id ="10001088";
$query1 = "SELECT `video`,`quran`,`medical`,`groups`  FROM `man_facebook`.`users` WHERE `facebook_id`='$facebook_id'";
        $result1 = mysql_query($query1);
while($result = mysql_fetch_array($result1))
{
    $video = $result['video'];
    $quran = $result['quran'];
    $medical = $result['medical'];
    $groups = $result['groups'];
    echo $video;
 //   echo $quran;
?>

<form method="post"  action="<? echo $_SERVER['REQUEST_URI']; ?>" >

<input type="checkbox" name="video" id="video" value="<?echo $video;?>" <?php
if($video == '1'){
     echo "checked='checked'";
}
 else {}
echo "/>"
?> 
 <input type="submit" name="submit" value="Submit">
</form>

<?php
}
 if (isset($_POST['submit']))
{
 if (is_numeric($_POST['video']) && $_POST['video'] <2 )
{
 $video1 = isset($_POST['video']) ? '1' : '0';


 echo $video1;
    $query = mysql_query("UPDATE `man_facebook`.`users` 
SET `video` ='$video1'
WHERE `facebook_id`='$facebook_id'");

$video = $video1;
echo '<meta http-equiv="refresh" content="0" />';

    }
    }
//echo $query;
 //header("Location: updatesql.php"); 

?>

jqueryを使用してスムーズに更新することもできますか?

4

2 に答える 2

0

この部分は少し奇妙だと思います:

if (is_numeric($_POST['video']) && $_POST['video'] <2 )
{
    $video1 = isset($_POST['video']) ? '1' : '0';

最初に数値かどうかを確認してから、設定されているかどうかを確認します。設定されていない場合は、自動的にfalseになります。つまり、$videoは常に1です$video。true/ falseのみ(または「チェック済み」/「チェックなし」と表示される場合がありますが、実際にはわかりません)であると想定して、次のように使用します。

$video1 = ($video ? '1' : '0');

うまくいけば、私は問題をうまく見つけました:)

アップデート

<input type="checkbox" name="video" id="video" value="video" <?php
if($video == '1'){
     echo "checked='checked'";
}
echo "/>";

...

if (isset($_POST['submit']))
{
    echo $_POST['video']; // again, please tell what it outputs here!!!
    $video1 = (($_POST['video'] == "video") ? '1' : '0');
于 2012-08-21T06:19:45.503 に答える
-1

チェックボックスの更新

if (isset($_POST["send"]) && $_POST["send"] == "ok") {

    foreach ($_POST['membre'] as $id => $data) {

        mysql_query("UPDATE tablename SET param1='" . $data['param'] . "'  WHERE id='" . $id . "'");
    }
}

<form>
    <input type="hidden" name="send" value="ok" />
    <td class="cel2" style=" width: 100px;">
        <input name="membre[<?php print $val['id']; ?>][param]" type="checkbox" style="margin-top: 7px; width: 30px;" value="1" id="param" <?php if ($val['p'] == '1') print 'checked'; ?> />
    </td>
</form>
于 2015-01-22T13:26:00.840 に答える