javascript - PHP读取DB值,JS递增,AJAX保存到DB,但为什么刷新页面之前默认为0.0?

标签 javascript php jquery ajax forms

我正在制作一个温度目标页面,其中表单将读取当前目标,允许用户使用 Javascript 按钮+/- 0.5,然后“设置”采用新值并将其保存回数据库的目标。

我有一个工作页面,可以读取数据库值并设置它,但随后自动恢复为“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>

如果您找到正确的数据,请检查您的数据库结构是否允许 float 等。我认为它会起作用
你也可以检查这个

How to Search value from input by mysqli in database

关于javascript - PHP读取DB值,JS递增,AJAX保存到DB,但为什么刷新页面之前默认为0.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42655964/

相关文章:

javascript - 单击链接时开始播放视频

javascript - 使用内部/外部 CSS 更改背景图片

javascript - componenetDidMount() 中定义的变量不可用

php - 使用 PHP 转义字符串防止 Sql 注入(inject)(有什么真正好的方法吗?

php - 排队更新请求以获得巨大的更新?

javascript - 如何使用 SimplePagination jquery

javascript - 迭代 Jquery 中启用的选项卡

jquery - 如何编写一个可以独立调用的 jQuery 函数(无元素)

javascript - Nativescript http php 请求

php - mysql_query ("ROLLBACK");不起作用