Я хочу обновить базу данных с помощью флажка в проверенном состоянии.
Он работает нормально, но он не работает, если он не установлен.
<?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 для его плавного обновления?
Я считаю эту часть немного странной:
if (is_numeric($_POST['video']) && $_POST['video'] <2 ) { $video1 = isset($_POST['video']) ? '1' : '0';
Сначала проверьте, является ли оно числовым, а затем проверьте, установлено ли оно. Если он не был установлен, это может стать ложным автоматически. Другими словами, $video
всегда равен 1. Предполагая, что $video
может быть истинным / ложным (или, может быть, оно происходит как «проверено» / «непроверено», не совсем уверенно), используйте его следующим образом:
$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');
обновление флажка
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>