努力理解与MySQL数据库交互的逻辑

时间:2016-12-10 11:34:30

标签: javascript php jquery mysql ajax

首先,提前抱歉提出我知道其他地方已经回答过的问题 - 这只是因为我已经尝试了几个小时来将他们所说的内容转移到我自己的程序中,并且总是打同样的障碍。我认为解决问题的最佳方法就是问自己的问题。

项目

我正在预订表上工作,缺席的孩子的父母可以让他们的孩子离开学校。这个想法是它节省了年度小组助理不断接听电话,说某人将会缺席,并将其添加到日历中 - 如果一个程序处理了这个问题,那么他们可以专注于他们在其他方面的重要角色关系等。

所以,我制作了一个HTML表单:

HTML Form

一旦有人填写表单并按下提交,就会创建一个对象:

class Teacher
{
    constructor(TeacherObject)
    {
        this.Tutor = TeacherObject.Tutor;
        this.YearGroup = TeacherObject.YearGroup;
        this.FullName = TeacherObject.FullName;
        this.ID = TeacherObject.ID;
    }
}

class Student
{
    constructor(Teacher, StudentName)
    {
        this.StudentForm = Teacher;
        this.StudentName = StudentName;
    }
}

class Request
{
    constructor(Student, Dates)
    {
        this.AbsentStudent = Student;
        this.AbsenceDates = Dates;
    }
}

A'请求'使用所有必要的信息创建对象,并且想法是将其中的信息传递到MySQL以添加到数据库中。

问题

据我所知,PHP是服务器端的,并且在任何Javascript / jQuery / HTML代码之前运行。如果将数据添加到数据库中的代码是在PHP中,那么这肯定必须在创建要添加到数据库的对象的其余代码之前运行吗?如果我使用include()require_once(),那么在我有机会为其提供任该计划,可以这么说。

我读了AJAX,据我所知,你可以等待来运行PHP代码吗?如果那是我所缺少的,那么有人能够解释我将如何使用它吗?

我在PHP文件中设置了一个函数:

function addData($requestDataInJSONFormat)
{
    echo "Just testing....";
}

但可以肯定的是,如果它在页面的其余部分加载之前全部运行,那么我该如何等待'直到我有最终的学生对象,传递给PHP函数并将其添加到数据库?我很困惑!

任何帮助将不胜感激, 杰克

1 个答案:

答案 0 :(得分:1)

首先,您似乎理解了您的问题,PHP是一种服务器端语言,这意味着它由服务器运行,然后服务器向浏览器提供一个html页面(基本上)。

这意味着您可以将php变量传递给javascript,例如:

...
var javascript_var = <?php echo $php_var; ?>;
...

但是关于你的问题,你将不得不使用AJAX与服务器“交谈”,而不必去另一个页面。记住,当你在php中创建一个基本表单时,你将数据发送到一个php文件,然后执行所有后端工作(将其保存到数据库等...)

AJAX会让你做同样的事情(将数据发送到php文件,可能是其他东西)而不重新加载页面(这是AJAX中的异步)。

所以你必须编写一个php文件,它会将你的数据保存在你的数据库中。并使用AJAX从前端向此页面发送数据。

所以AJAX没有魔力,它不会直接与你的数据库交谈,它只会让你运行一个php文件而不会让用户离开页面去你的register.php文件。

我不会在这里给你代码,因为那里有很多教程,但你可以从这个链接开始:

https://www.sanwebe.com/2016/01/ajax-registration-script-using-jquery-with-php-and-mysql

根据我的理解,这几乎是你打算做的事情。

希望我能让你更清楚,

干杯,