我试图使用AJAX值发送到PHP文件,然后在服务器上更新MySQL数据库。 但由于某些原因的值不会转移到PHP文件。
这是我用的是JS:
function send_message()
{
var number = localStorage.getItem("number");
var message = prompt("Message:", "");
jQuery.ajax({ type: "POST",
url: serviceURL + "message.php",
data: 'number='+number+'&message='+message,
cache: false,
success: function(response)
{
alert("message sent");
}
});
}
这是message.php
<?php
include 'config.php';
// database connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
// new data
$number = $_GET['number'];
$message = $_GET['message'];
// query
$sql = "INSERT into table
SET condition=0, change=1, change_time=NOW(), recieve=999,
number=?, message=?";
$q = $conn->prepare($sql);
$q->execute(array($number, $message));
?>
否则插入除了数量和消息mysql的一切都是空。 可能是什么原因呢?
您发布使用POST AJAX数据。 为了监听PHP中的这些值,你需要...
更换:
$number = $_GET['number'];
$message = $_GET['message'];
附:
$number = $_POST['number'];
$message = $_POST['message'];
为了让事情变得更简单只需使用像$。员额或jQuery中的Ajax调用$。获得一个方便的方法:
function send_message()
{
var number = localStorage.getItem("number");
var message = prompt("Message:", "");
$.post(serviceURL + "message.php", {'number' : number, 'message' : message},
function(response){
alert("message sent");
}
);
}
然后在你的PHP:
// database connection $conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass); //if you used $.get you will also have to use $_GET here $number = $_POST['number']; $message = $_POST['message']; // query $sql = "INSERT into table SET condition=0, change=1, change_time=NOW(), recieve=999, number=?, message=?"; $q = $conn->prepare($sql); $q->execute(array($number, $message)); ?>
我可以看到,您使用的是PDO准备语句。 但你也可能需要添加:
过滤瓦尔和滤波输入额外的安全性。
使用$_POST
而不是$_GET
。 此外,您还可以尝试使用$_REQUEST
全局数组忘掉它。 它具有所有已发送给脚本的数据。
你可以改变你的PHP文件;
<?php
include 'config.php';
// database connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
// new data
$number = $_POST['number'];
$message = $_POST['message'];
// query
$sql = "INSERT into table
SET condition=0, change=1, change_time=NOW(), recieve=999,
number=?, message=?";
$q = $conn->prepare($sql);
$q->execute(array($number, $message));
?>