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

标签 javascript php jquery mysql ajax

首先,提前抱歉问了一个我知道已经在其他地方得到解答的问题 - 只是我已经尝试了好几个小时将他们所说的内容转移到我自己的程序中,但总是遇到同样的障碍。我认为解决这个问题的最好方法就是问我自己的问题。

项目

我正在制作一份预订表格,缺勤 child 的家长可以在其中为 child 办理退学手续。这个想法是,它可以让年级助理不断地接到电话说有人缺席,并将其添加到日历中——如果有一个程序解决了这个问题,那么他们就可以专注于他们在关系等方面的其他重要 Angular 色。

所以,我制作了一个 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;
    }
}

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

问题

据我了解,PHP 是服务器端,并且在任何 Javascript/jQuery/HTML 代码之前运行。如果将数据添加到数据库的代码是用 PHP 编写的,那么这肯定必须在创建要添加到数据库的对象的其余代码之前运行?如果我使用 include()require_once() ,那么在我有机会向它提供任何数据之前,我指定的 PHP 文件中的所有代码都会运行。可以这么说,在程序的“结尾”。

我读到了有关 AJAX 的内容,据我了解,您可以等待运行 PHP 代码或其他什么?如果这就是我所缺少的,有人能够解释我将如何使用它吗?

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

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

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

任何帮助将不胜感激, jack

最佳答案

首先,看来你明白你的问题了,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

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

希望我能让你更清楚

干杯,

关于javascript - 努力理解与 MySQL 数据库交互的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41075065/

相关文章:

javascript - 我们在 12 月(夏令时)多了一个小时吗?

php - 尝试匹配两个数组中的值,如果存在匹配值则输出 true

php - 通过php运行并口控制程序

jquery - 如何在悬停时更改图 block 颜色并在鼠标移开时恢复为默认值而不影响文本颜色?

javascript - 从日期中提取年份并计算日期差

javascript - 如果存在则追加到列表或在 dynamoDB 中添加列表

JavaScript:在没有 64 位重定向的情况下读取注册表?

php - HybridAuth 身份验证 cookie

jquery - 如何使我的 jQuery 代码更加高效?

jquery - 使用 Bootstrap 和 jquery 来回切换按钮文本