Javascript 从JS文件调用PHP文件并插入数据库

Javascript 从JS文件调用PHP文件并插入数据库,javascript,php,ajax,oracle,Javascript,Php,Ajax,Oracle,我在学院里做一个项目,基本上我们是在复制吃豆人游戏。我试图通过一个PHP文件insertintotable.ph向Oracle数据库中插入一个高分,并尝试使用Ajax来更新它。问题是什么也没发生 以下是javascript代码: function score(s, type) { var scoreBefore = (SCORE / 10000) | 0; SCORE += s; if (SCORE === 0) { $('#score span').html("00"); }

我在学院里做一个项目,基本上我们是在复制吃豆人游戏。我试图通过一个PHP文件insertintotable.ph向Oracle数据库中插入一个高分,并尝试使用Ajax来更新它。问题是什么也没发生

以下是javascript代码:

function score(s, type) { 

var scoreBefore = (SCORE / 10000) | 0;

SCORE += s;
if (SCORE === 0) { 
    $('#score span').html("00");
} else { 
    $('#score span').html(SCORE);
}

var scoreAfter = (SCORE / 10000) | 0;
if (scoreAfter > scoreBefore) { 
    lifes( +1 );
}


if (SCORE > HIGHSCORE) { 
    HIGHSCORE = SCORE;
    if (HIGHSCORE === 0) { 
        $('#highscore span').html("00");
    } else { 
        $.ajax({
    url: '/inserintotable.php',
    type: 'POST',
    dataType: "json",
    data: {
        score: HIGHSCORE.val(),
    }
}).done(function(data){
        alert(JSON.stringify(data));
});
    }
}

if (type && (type === "clyde" || type === "pinky" || type === "inky" || type === "blinky") ) { 
    erasePacman(); 
    eraseGhost(type); 
    $("#board").append('<span class="combo">' + SCORE_GHOST_COMBO + '</span>');
    $("#board span.combo").css('top', eval('GHOST_' + type.toUpperCase() + '_POSITION_Y - 10') + 'px');
    $("#board span.combo").css('left', eval('GHOST_' + type.toUpperCase() + '_POSITION_X - 10') + 'px');
    SCORE_GHOST_COMBO = SCORE_GHOST_COMBO * 2;
} else if (type && type === "fruit") { 
    $("#board").append('<span class="fruits">' + s + '</span>');
    $("#board span.fruits").css('top', (FRUITS_POSITION_Y - 14) + 'px');
    $("#board span.fruits").css('left', (FRUITS_POSITION_X - 14) + 'px');
}
功能评分(s,类型){
var scoreBefore=(分数/10000)| 0;
分数+=s;
如果(分数==0){
$('#score span').html(“00”);
}否则{
$('#score span').html(score);
}
var scoreAfter=(分数/10000)| 0;
如果(scoreAfter>scoreBefore){
寿命(+1);
}
如果(分数>高分){
高分=分数;
如果(高分===0){
$('highscore span').html(“00”);
}否则{
$.ajax({
url:“/inserintotable.php”,
键入:“POST”,
数据类型:“json”,
数据:{
score:HIGHSCORE.val(),
}
}).完成(功能(数据){
警报(JSON.stringify(数据));
});
}
}
如果(type&&(type==“clyde”| | type==“pinky”| | type==“inky”| | type==“blinky”){
吃豆人();
(类型);
$(“#板”)。附加(“”+分数+组合+“”);
$(“#board span.combo”).css('top',eval('GHOST#'+type.toUpperCase()+''u POSITION_Y-10')+'px');
$(“#board span.combo”).css('left',eval('GHOST#'+type.toUpperCase()+''位置_X-10')+'px');
分数鬼组合=分数鬼组合*2;
}else if(type&&type==“fruit”){
$(“#董事会”)。追加(“+s+”);
$(“#board span.fruits”).css('top',(fruits_POSITION_Y-14)+'px');
$(“#board span.fruits”).css('left',(fruits_POSITION_X-14)+'px');
}
}

下面是php文件:

      <?php

  // Query pentru crearea tabelei : CREATE TABLE HighScores (NumeUser varchar2(25),Scor int NOT NULL);
  session_start();
  $userName = isset($_SESSION['userName']) ? $_SESSION['userName'] : NULL;
  $conn = oci_connect('vladut', 'LAB11', 'localhost/XE');
  if (!$conn) {
     $e = oci_error();
     trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
 }

  $stid = oci_parse($conn, 'INSERT INTO HighScores VALUES(:user, :scor)');
  //$user=_$GET["username"]; //din jquery primeste username-ul
  $scor=_$POST["score"]; //idem
  oci_bind_by_name($stid, ':user', $userName);
  oci_bind_by_name($stid, ':scor', $scor);

  oci_execute($stid); 

  oci_free_statement($stid);
  oci_close($conn);

  ?>

在php文件中检查您使用的
\uu$POST[“score”]
行是否不正确。您必须使用此命令修改此行
14
code

$scor=$_POST["score"]; //idem
您还可以使用我添加的json_解码函数的以下代码

<?php
// Query pentru crearea tabelei : CREATE TABLE HighScores (NumeUser varchar2(25),Scor int NOT NULL);
session_start();
$userName = isset($_SESSION['userName']) ? $_SESSION['userName'] : NULL;
$conn = oci_connect('vladut', 'LAB11', 'localhost/XE');

if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES) , E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO HighScores VALUES(:user, :scor)');
// $user=_$GET["username"]; //din jquery primeste username-ul
$score = json_decode($_POST['score']);
$scor = $score->{'score'}; //idem
oci_bind_by_name($stid, ':user', $userName);
oci_bind_by_name($stid, ':scor', $scor);
oci_execute($stid);
oci_free_statement($stid);
oci_close($conn);
?>


\u$POST
那肯定是个打字错误。没错。我已经改变了,但仍然没有发生任何事情。@VlăduțCojocariu我知道在你的JS中,你也可以从url中删除/删除,这样看起来就像
url:'insertotable.php',
我做了一点改变,并通过控制台查看了一下。php被调用,但问题是我的帖子返回404:notfound。我发现可能是我如何发送变量HIGHSCORE的问题,但我不知道如何更改它。这是因为您的php文件路径不正确。当您更正此路径时,您将编写代码。您可以共享当前路径吗路径正确,文件名有输入错误。现在它不会返回任何错误,但仍然不会插入到表中。