0

我一直在寻找几个小时,但我不了解 MySQL,所以我想知道是否有可能以另一种方式做到这一点。我有一个自定义的 html 付款表单,可将​​发票编号、金额和名称提交给付款处理器。我希望能够添加一个从 30200 开始的事务编号,并在每次将表单提交给处理器时自动递增 1。我写了一个简单的增量函数:

var i = 30200;
function buttonClick() {
    document.getElementById('transNum').value = ++i;
}

代码正确传递了递增的变量,但没有将新值存储在任何地方,我不知道如何存储它。每次提交表单时,事务编号都会设置为 30201。有没有办法将其存储在外部文件中并调用最后存储的编号?就像我说的我不了解 MySQL,所以将它存储在数据库中超出了我的理解。我必须有一种简单易懂的方法来实现这一点,但我找不到解决方案。

几乎在那里编辑(我希望)

经过大量研究后,我尝试使用 mySQL 来完成这项任务。

所以我关注了一个 YouTube 视频并使用 phpMyAdmin 创建了一个名为 refNum 的表,然后创建了自动递增变量 refNumber 并将其设置为 30300。

我创建了一个 php 文件并将其上传到名为 reference.php 的服务器,其中包含以下代码:

<?php 
function get_refNum($ref){
global $wpdb;
$results = $wpdb->get_results("SELECT refNumber FROM refNum");
return $results;
};
?>

然后在我的表单中,我编写了这段代码来调用页面并从数据库中获取结果:

 function getTransNumber(){
 $.ajax({
 url : '/reference.php',
 method : 'post',
 data : {$results},
 });
 $results = document.getElementById('invoiceNum').value;
 }
 window.onload = getTransNumber;

我的问题是现在我收到一个错误 Uncaught reference error: $results is not defined in my ajax call under data. 这意味着要么我没有在我的 php 代码中正确获取数据,要么我没有传递数据。有人可以指出我正确的方向并告诉我我在这里做错了什么吗?

4

2 回答 2

0

如果您有一个全局号码,任何访问该页面的人都需要增加该号码(并且在页面关闭时不会忘记),那么您需要一些地方来存储最后使用的号码。

无论您是否了解 MySQL,通常的解决方案是使用某种数据库,尽管不一定是 MySQL。

于 2021-06-29T15:36:08.470 回答
0

我不是 MySQL 的大用户,但每列都可以拥有(或不拥有)一个 AutoIncrement 属性。

这是来自https://www.w3schools.com/sql/sql_autoincrement.asp的示例

CREATE TABLE Persons ( Personid int NOT NULL AUTO_INCREMENT, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, PRIMARY KEY (Personid) );

插入时不需要您提供第一个字段。每次您创建记录时,它都会为您执行此操作。不完全确定如何将第一个设置为 32000。

于 2021-06-29T15:37:16.713 回答