我的javascript不会进入我的Database.php文件。 谁知道什么是错的?
我知道这个问题有另一个主题,但它对我不起作用。
我在javascript中有这个
var Score = 5;
//Score insert
var postData =
{
"Score":Score
}
$.ajax({
type: "POST",
dataType: "json",
url: "Database.php",
data: {myData:postData},
success: function(data){
alert('Items added');
},
error: function(e){
console.log(e.message);
}
});
这是在php
function InsertScore(){
$table = "topscores";
if(isset($_POST['myData'])){
$obj = json_encode($_POST['myData']);
$stmt = $conn->prepare("INSERT INTO " + $table + " VALUES (?)");
$stmt->bind_param('s', $obj);
$stmt->execute();
}
else{
console.log("neen");
}
$result->close();
答案 0 :(得分:5)
更改此行
success: function InsertScore(data){
到这个
success: function(data){
jquerys ajax方法的成功参数必须是匿名函数(没有名称)或者在javascript中定义的,但绝对不是php函数。
答案 1 :(得分:3)
您应该阅读variable scope,您的$table
变量未在您的功能范围内定义。
你也有一个SQL注入问题,应该切换到带有绑定变量的预处理语句。
答案 2 :(得分:1)
您正在尝试将对象发送到PHP文件而不是JSON数据类型。 尝试2使用JSON2将对象字符串化为:
var scoreINT = 9000;
var usernameSTRING = "testJSON"
var scoreOBJ = {score:scoreINT,username:usernameSTRING};
var jsonData = JSON.stringify(scoreOBJ);
这会给你以下结果“{”得分“:9000,”用户名“:”testJSON“}”
如果你改变了(如果你遵循我的变量名称)你可以用你的AJAX发送它
data: {myData:postData}
到
data: {myData:jsonData}
这已经成功地将您的数据传输到PHP文件。
关于您的错误消息和未定义。消息“e.message”不存在。这就是你得到的“未定义”。不用担心。
我注意到错误地调用了成功和错误。我刚刚删除了它们,因为没有必要。
下一步。升级到你的PHP。
你宁愿喜欢“DECODE”然后编码你的编码JSON。 你可以在那里使用以下内容:
$score = json_decode($_POST['json'],true);
额外的参数是,所以你将数据放入一个数组(link) 或者你可以留下真实,所以你正在使用像你一样的物体。
问候 ySomic