PHP读取dB值,JS来增加它,AJAX保存到数据库,但为什么它刷新页面之前默认为0.0?(PHP

2019-09-27 18:01发布

我想提出一个温度目标所在的页面形式将读取当前目标,允许用户使用Javascript按钮由0.5 +/-,然后“设置”这需要新的价值,并将其保存到数据库中的对象。

我可以读出DB值,并将其设置一个工作页面,但随后会自动恢复到“0.0”作为目标。 如果刷新网页,然后它会显示在目标,但有时在DB将其保存为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>

Answer 1:

只是呼应这个温度值

<?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>

如果你找到了正确的数据,然后检查你的数据库结构,即它允许浮动等,我认为它会工作
你也可以检查此

如何从输入由数据库的mysqli搜索值



文章来源: PHP to read DB value, JS to increment it, AJAX to save to DB, but why does it default to 0.0 before refreshing the page?