PHPでデータベースに値を保存したい。私はAJAXでPHP関数を呼び出します。ウェブサイトは、パラメータで呼び出された場合、私はdocument.ready()
にチェックPHPでDBに値を格納する - JavaScriptからAjaxを呼び出す
は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」を使用します。だから私はdata
とdatetime
を渡す。私の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"]);
}
?>
私は最初に、どの関数が呼び出されているかを確認してから、パラメータで関数自体を呼び出します。私はパラメータでウェブサイトを呼び出した後、私のデータベースに新しい行があるので、これが動作することを知っています。しかし、フィールドdatetime
とvalue
は常にゼロです。マイ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();
}
これは私がtemperature
パラメータを読み込むために使用する機能です。
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];
}
あなたは私が作った間違い任意のアイデアを持っていますか? ありがとう
datetimeのデータベースデータ型は何ですか? –
これは 'datetime'です。 'value'のdatatpyeは' INT'です – binaryBigInt
jqueryポストを実行すると、get変数を送信することはできません。 – Garytje