我有一个包含设定值的输入文本框,并且数据库中的表具有默认值,但需要。如果我更改了文本框中的设定值,则无需单击按钮即可更新数据库表中的值!
这是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);
?>
答案 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);
?>