Javascript ajax将php变量插入数据库

Javascript ajax将php变量插入数据库,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我正在做学生出勤评分。为此,我想使用AJAX,但无法将数据插入数据库。以下是我的代码:- HTML: Javascript: <script> function Present(Pid){ var Pyear = <?php echo $selected_year; ?>; var Pmonth = "<?php echo $selected_month; ?>"; var Pday = <?php echo $selecte

我正在做学生出勤评分。为此,我想使用AJAX,但无法将数据插入数据库。以下是我的代码:-

HTML:



Javascript:

<script>
function Present(Pid){
    var Pyear = <?php echo $selected_year; ?>;
    var Pmonth = "<?php echo $selected_month; ?>";
    var Pday = <?php echo $selected_day; ?>;
    var Pdate = "<?php echo $selected_date; ?>";
    $.ajax({
        type: "POST",
        url: 'mark_present.php',
        data: { id : Pid, year : Pyear, month : Pmonth, day : Pday, date : Pdate },
        dataType: "JSON",
        success: function(data){
            $("#message").html(data);
            window.location.href = 'mark_attendance.php';
            //window.location.reload();
        },
        error: function() {
            alert("Failure");
        }
    });
}

功能存在(Pid){
var Pyear=;
var Pmonth=“”;
var Pday=;
var Pdate=“”;
$.ajax({
类型:“POST”,
url:'mark_present.php',
数据:{id:Pid,年:Pyear,月:Pmonth,日:Pday,日:Pdate},
数据类型:“JSON”,
成功:功能(数据){
$(“#消息”).html(数据);
window.location.href='mark_attention.php';
//window.location.reload();
},
错误:函数(){
警报(“故障”);
}
});
}

mark_present.php:

<?php 
include "db.php";
    $student_id = $_POST['id'];
    $year = $_POST['year'];
    $month = $_POST['month'];
    $day = $_POST['day'];
    $date = $_POST['date'];

    $sql = "INSERT INTO `student_attendance` SET student_id = '$student_id', year = '$year', month = '$month', day = '$day', date = '$date', status = '1' ";
    $result = mysql_query($sql);

    if($result){
        return json_encode(array("message"=>true));
        //echo "success";
    }else{
        return json_encode(array("message"=>false));
        //echo "error";
    }
?>

并将您的成功函数更改为

.success : function (data){
    console.log(data);
 }
.error : function(data){
    console.log(data);
 }

您将在控制台或成功消息中收到错误

您是否收到任何类型的错误?@CMiller OP没有混合插入和更新,这也是插入的方式。请提供您收到的错误,您是否能够在使用ajax发送的php页面上打印数据?除非您回显数字(或json)您需要引用传递给javascript变量的字符串。检查你的浏览器开发工具控制台是否有错误。给定的代码有很多错误,需要一篇文章来解释。摘要,在最有可能得到multi的元素上使用多个
id
,而不是使用事件处理程序而不是onClick。不将参数传递给具有data-*属性的事件,不使用对象而不是设置许多变量、引号,在使用之前不检查变量,mysql_uu,并且没有针对sql注入的保护。这很容易发生(以及其他问题)。是的,该OP需要升级代码,也不应该使用mysql_*而不是使用mysqil_*函数或PDO在成功后如何重新加载页面?使用window.location.href='location of your page'它不起作用,我既不能从PHP文件获取数据以显示在主页上,也不能重新加载页面,只是数据插入没问题
<?php 
include "db.php";
$student_id = $_POST['id'];
$year = $_POST['year'];
$month = $_POST['month'];
$day = $_POST['day'];
$date = $_POST['date'];

$sql = "INSERT INTO student_attendance(student_id,year,month,day,date,status) value('$student_id', '$year', '$month', '$day', '$date', '1') ";
$result = mysql_query($sql);
?>
var Pyear = "<?php echo $selected_year; ?>";
var Pmonth = "<?php echo $selected_month; ?>";
var Pday = "<?php echo $selected_day; ?>";
var Pdate = "<?php echo $selected_date; ?>";
<?php 
include "db.php";
$student_id = $_POST['id'];
$year = $_POST['year'];
$month = $_POST['month'];
$day = $_POST['day'];
$date = $_POST['date'];

$sql = "INSERT INTO `student_attendance` SET student_id = '$student_id', year = '$year', month = '$month', day = '$day', date = '$date', status = '1' ";
$result = mysql_query($sql);
if(!$result){
    return json_encode(array("message"=>"There is some error".mysql_error());
} else {
    return json_encode(array("message"=>"Record inserted successfully"));
}
?>
.success : function (data){
    console.log(data);
 }
.error : function(data){
    console.log(data);
 }