PHP ile bir veritabanında bir değer kaydetmek istiyorum. AJAX ile bir PHP işlevi çağırıyorum. Bilgiyi PHP'de PHP ile saklayın - Ajax çağrısı JavaScript'ten
$(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);
}
})
}
}
Ben geçirilen parametrelerle belirlemek göre işlevi çağırmak için bir php dosyası "FunctionManager" kullanın: Web sitesi
temperature
adlı bir parametre ile belirtilmiş
Ben document.ready()
kontrol et. Bu yüzden data
ve datetime
'u geçiyorum. Benim FunctionManager şöyle görünür:
<?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"]);
}
?>
Yani ben ilk denir fonksiyonu kontrol edin ve sonra parametreleriyle işlevini kendisi çağrı görebilirsiniz. Bunun işe yaradığını biliyorum çünkü veritabanımı bir parametreyle çağırdıktan sonra veritabanımda yeni bir satır var. Ancak datetime
ve value
alanları her zaman sıfırdır. Benim storeValue
- fonksiyon SQLCommunication.php
bulunan ve görünümü de şu:
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();
}
budur i temperature
parametresini okumak için kullandığınız fonksiyonu:
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];
}
i yapılan hata herhangi bir fikir var mı? Teşekkürler
Veritabanınız datetime için veri tipiniz nedir? –
Bu 'datetime' dir. Ve 'değer' datppay 'INT – binaryBigInt
olduğunu inanıyorum ki bir jquery yazı yaptığınızda, herhangi bir get değişkenleri gönderemezsiniz .. – Garytje