gpt4 book ai didi

javascript - 使用 PHP 将值存储在数据库中 - 来自 JavaScript 的 Ajax 调用

转载 作者:行者123 更新时间:2023-11-29 11:37:24 25 4
gpt4 key购买 nike

我想用 PHP 在数据库中存储一个值。我使用 AJAX 调用 PHP 函数。

我检查 document.ready() 是否使用名为 Temperature 的参数调用网站:

$(document).ready(function(){
var data = 5; //gup('temperature', location.href);
if(data != undefined){
var sendData = 'func=storeValue&value=' + data + '&datetime=' + getDateTime();
$.ajax({
data: sendData,
type: "POST",
url: "FunctionManager.php",
success: function(data){
alert("Data Saved " + data);
},
error: function(xhr){
alert(xhr.responseText);
}
})
}
}

我使用 php 文件“FunctionManager”来调用我根据传递的参数确定的相应函数。所以我传递了数据日期时间。我的 FunctionManager 看起来像这样:

    <?php
include "$_SERVER[DOCUMENT_ROOT]/SQLCommunication.php";

header('Content-Type: application/json');
if(!isset($_GET['func']) && empty($_GET['func'])){
exit();
}

if($_POST['func'] === "readValue"){
echo readValue();
}elseif($_POST['func'] === "storeValue"){
echo storeValue($_POST["value"], $_POST["datetime"]);
}
?>

正如你所看到的,我首先检查调用了哪个函数,然后使用参数调用函数本身。我知道这是可行的,因为在使用参数调用网站后,我的数据库中有一个新行。但字段 datetimevalue 始终为零。我的 storeValue- 函数位于 SQLCommunication.php 中,如下所示:

function storeValue($val, $datetime){        
$conn = establishConnection();
if($conn->connect_error){
die("Connection failed: ". $conn->connect_error);
}

//$datetime = date_default_timezone_get();
//$datetime = '2016-01-04 00:18:00';

$sql = "INSERT INTO tempvalues (datetime, value) VALUES ('$datetime', '$val')";
$conn->query($sql);
$conn->close();
}

这是我用来读取温度参数的函数:

function gup( name, url ) {
if (!url) url = location.href;
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( url ).toString();
return results == null ? null : results[1];
}

你知道我犯了什么错误吗?谢谢

最佳答案

jquery代码一定是这样的。如果您查看浏览器控制台,您可能会看到一些错误。jquery 应该是这样的:

var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var hours = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();

newdate = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;

$(document).ready(function(){
var storeValue = 'storeValue';
var data = gup('temperature', location.href);
if(data != undefined){
yourData = 'func='+storeValue+'&value='+data+'&newdate='+newdate;
$.ajax({
data: yourData,
type: "POST",
url: "FunctionManager.php,
success: function(data){
alert("Data Saved " + data);
},
error: function(xhr){
alert(xhr.responseText);
}
});
}
});

在 Functionmanager.php 中

    print_r($_POST);

include "$_SERVER[DOCUMENT_ROOT]/SQLCommunication.php";

header('Content-Type: application/json');
if(!isset($_POST['func']) || empty($_POST['func'])){
exit();
}else{

$func = isset($_POST['func'])? $_POST['func']: 'storeValue';
$val = isset($_POST['value'])? $_POST['value']:'';
$datetime = isset($_POST['newdate'])? $_POST['newdate']:'';

if($func == 'readValue'){
echo readValue();
}elseif($func == 'storeValue'){
echo storeValue($val, $datetime);
}
}

在表的日期字段中,将数据类型设置为日期时间。希望这可能有所帮助。

关于javascript - 使用 PHP 将值存储在数据库中 - 来自 JavaScript 的 Ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36358754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com