Я делаю страницу целевой температуры, где форма будет читать текущую цель, позволяет пользователю +/- на 0,5 с помощью кнопок Javascript, а затем «установить» цель, которая берет новое значение и сохраняет его обратно в базу данных.
У меня есть рабочая страница, которая может считывать значение DB и устанавливать его, но затем автоматически возвращается к «0.0» в качестве цели. Если страница обновлена, она отобразит цель, но иногда сохраняет ее в 0.0 в БД.
Я очень смущен тем, почему, поскольку я слишком долго тратил на это, но его прослушивание меня! Любая помощь очень ценится, спасибо.
Вот мой код:
<?php $conn = connect DB stuff here... $queryTarget = "SELECT * FROM target;"; $result2 = $conn->query($queryTarget); $conn->close(); if ($result2->num_rows > 0) { while($row = $result2->fetch_assoc()) { $target = $row['target']; } } ?> <form id="input" method="post" action=""> Temp <input type="text" value="<?php echo $target; ?>" name="temp" id="temp" > <input type="button" id="Up" value="up" / > <input type="button" id="Down" value="down"/ > <input type="submit" id="submit" value="submit " name="submit"> </form> <?php $conn = connect DB stuff here... $temp = $_POST['temp']; $updateTarget = "UPDATE target SET target = '"; $updateTarget = $updateTarget . $temp . "' WHERE id = 1;"; $result = $conn->query($updateTarget); $conn->close(); ?> <script> var min = 15, max = 25; $("#Up").click(function(){ if($("#temp").val() < 25 && $("#temp").val() >= 15) $("#temp").val(Number($("#temp").val()) + 0.5); }); $("#Down").click(function(){ if($("#temp").val() <= 25 && $("#temp").val() > 15) $("#temp").val(Number($("#temp").val()) - 0.5); }); </script> <script> $(document).ready(function(){ $('#submit').click(function(){ var srt = $("#input").serialize(); // alert is working perfect alert(srt); $.ajax({ type: 'POST', url: 'form.php', data: srt, success: function(d) { $("#input").html(d); } return false; }); }); }); </script>
просто эхо это значение температуры
<?php //$conn = connect DB stuff here... $temp = $_POST['temp']; or print_r($_POST); echo $temp; die(); $updateTarget = "UPDATE target SET target = '"; $updateTarget = $updateTarget . $temp . "' WHERE id = 1;";
затем проверьте оповещение, если предупреждение показывает правильные данные, а затем используйте один запрос, подобный этому
$updateTarget = "UPDATE target SET target = '$temp' WHERE id = 1"; //i think it will help you to find issue $result = $conn->query($updateTarget); $conn->close(); ?>
и ваша функция javascript должна обновиться
<script> $(document).ready(function(){ $('#submit').click(function(){ var srt = $("#input").serialize(); // alert is working perfect alert(srt); $.ajax({ type: 'POST', url: 'form.php', data: srt, success: function(d) { alert(d); $("#input").html(d); } }); return false; }); }); </script>
если вы находите правильные данные, тогда проверьте свою структуру db, которая позволяет плавать и т. д. Я думаю, что это сработает
вы также можете проверить это
Как искать значение из ввода mysqli в базе данных