想要从HTML输入文本更新数据库值而无需单击按钮

时间:2019-05-22 11:30:21

标签: php html mysql

我有一个包含设定值的输入文本框,并且数据库中的表具有默认值,但需要。如果我更改了文本框中的设定值,则无需单击按钮即可更新数据库表中的值!

这是HTML代码:

 <input class="tempSet" id="ACSet" type="text"  value="35">

和PHP代码,但无法将文本框与PHP连接以选择新值:

  <?php
     $DATABASE_HOST = 'localhost';
     $DATABASE_USER = 'user';
     $DATABASE_PASS = 'pass';
     $DATABASE_NAME = 'name';
     // Try and connect using the info above.
     $db = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS,                   
       $DATABASE_NAME);
     if (!$db){

die("Connection Failed: ". mysqli_connect_error());

     }

     $db_update = "UPDATE temp_setpoint SET set_point='??' WHERE id=1";
     $result = mysqli_query($db, $db_update);
      ?>

1 个答案:

答案 0 :(得分:2)

使用jquery获取文本框的值作为用户输入值,然后使用Ajax将该值发送到php文件。

$('document').ready(function(){

$('#ACSet').on('input',function(){

  var value = $(this).val();

$.ajax({
    type : "POST",
    data : {acset:value},
    url  : "file.php",
    dataType : "json",
    encode  : true,
    success : function(response){
      
      console.log(response.message);
    }


});

});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input class="tempSet" id="ACSet" type="text"  value="35">

file.php

<?php

$DATABASE_HOST = 'localhost';
$DATABASE_USER = 'user';
$DATABASE_PASS = 'pass';
$DATABASE_NAME = 'name';
// Try and connect using the info above.
$db            = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS, $DATABASE_NAME);
if (!$db) {

    die("Connection Failed: " . mysqli_connect_error());

}

$data = array();

$acset = intval($_POST['acset']) ?? null; // value from form

$db_update = "UPDATE temp_setpoint SET set_point= ?  WHERE id=1";
$stmt      = $db->prepare($db_update);
$stmt->bind_param("i", $acset);

if ($stmt->execute()) {

    $data = array(
        "status" => 'success',
        'message' => "Data updated sucess"
    );
} else {

    $data = array(
        "status" => "fail",
        'message' => "Updated fail, please try again later"
    );

    error_log($stmt->error);
}

echo json_encode($data);
?>