Php 我想从数据库中获取一个id,并将其添加到增量中,然后在单击按钮时生成一个新id,并将其显示在输入字段中

Php 我想从数据库中获取一个id,并将其添加到增量中,然后在单击按钮时生成一个新id,并将其显示在输入字段中,php,jquery,ajax,html,Php,Jquery,Ajax,Html,我想在单击generate id按钮时生成一个id。单击按钮时,我希望从数据库中检索最大id,并将其拆分为2个字符串以分隔整数部分(id看起来像SFABCD123456)。然后我希望整数部分增加1,并再次连接这两个字符串。然后我想在empid文本输入中显示它。我希望所有这些都在不加载页面的情况下发生在我的代码中,当我按下“生成id”按钮时,什么也没有发生 index.php <!DOCTYPE html> <html> <head> <title>

我想在单击generate id按钮时生成一个id。单击按钮时,我希望从数据库中检索最大id,并将其拆分为2个字符串以分隔整数部分(id看起来像SFABCD123456)。然后我希望整数部分增加1,并再次连接这两个字符串。然后我想在empid文本输入中显示它。我希望所有这些都在不加载页面的情况下发生在我的代码中,当我按下“生成id”按钮时,什么也没有发生

index.php

<!DOCTYPE html>
<html>
<head>
<title></title>
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
</head>

<?php 
//database connection
include 'includes/dbh.php'
?>

<body>

    <form method="POST" action="index.php">
        <label>Name :</label>
        <input type="text" name="name">

        <label>ID :</label>
        <input type="text" name="empid" id="empid">
        <button type="submit" id="generateID">GENERATE ID</button>


        <button type="submit" name="submit">SUBMIT</button>
    </form>

</body>
    <?php

        if(isset($_POST['submit']))
        {
            $name = $_POST['name'];
            $id = $_POST['empid'];


    ?>

    <p>
        Name : "<?php echo $name ?>;"
        <br>
        ID: "<?php echo $id ?>;"
    </p>

<?php

    }

?>


<script>
    $("document").ready(function(){
        $("#generateID").click(function(){
            $.post("generateid.php",function(){
                $("#empid").html(data);
            });
        });
    });
</script>

</html>

姓名:
身份证件:
生成ID
提交

姓名:“;”

ID:“;”

$(“文档”).ready(函数(){ $(“#generateID”)。单击(函数(){ $.post(“generateid.php”,函数(){ $(“#empid”).html(数据); }); }); });
generateid.php

<?php


//database connection
include 'includes/dbh.php'


  if(isset($_POST['generateID']))
        {

            $query = "SELECT max(staffID) FROM staff";
            $result = mysqli_query($conn, $query);


            if(mysqli_num_rows($result) > 0)
             {
                while ($row = mysqli_fetch_array($result))
                {
                    $empid = $row['staffID'];
                }
            }


            $part1 = substr($empid, 0, 6);
            $part2 = intval(substr($empid, 6))+1;
            $part2 = str_pad($part2, 6, '0', STR_PAD_LEFT);
            $newstaffID = $part1.$part2;


            echo $newstaffID;

        }
$sql = "SELECT max(staffID) as max FROM staff";
        $result = $con->query($sql);
        $row = mysqli_fetch_array($result);

        $eid= $row['max'];
        $eid = substr($eid,6) + 1;
        $neweid = "SFABCD" . $eid;
        echo $neweid;
尝试此步骤

使用
type=button
代替
type=submit

<button type="button" id="generateID">GENERATE ID</button>
试试这个, 加载index.php时,调用init函数,
init函数具有获取最大员工id的查询。这样您就不需要调用ajax请求。当index.php load init函数返回max staff id时,将其存储在php变量中

<?php 
function init(){
$query = "SELECT max(staffID) FROM staff";
            $result = mysqli_query($conn, $query);


            if(mysqli_num_rows($result) > 0)
             {
                while ($row = mysqli_fetch_array($result))
                {
                    $maxstaff_id = $row['staffID'];
                }
            }
}
?>
on generate button click, store php variable value in to javascript variable . var maxstaff_id ="<?php echo $maxstaff_id; ?>";  you can use substr method to get integere portion and you can increment it by 1.   

example : 

var maxstaff_id='php echo $maxstaff_id ?>';   
$(document).ready(function(){ 

        $("#generateID").click(function(){
                var maxstaff_id = maxstaff_id.substr(6);
                maxstaff_id=parseInt(maxstaff_id)+1;
                $("#empid").val(maxstaff_id);
        });
    }); 

单击generate按钮,将php变量值存储到javascript变量中。var maxstaff_id=“”;您可以使用substr方法来获取整数部分,并且可以将其递增1。
例子:
var maxstaff_id='php echo$maxstaff_id?>';
$(文档).ready(函数(){
$(“#generateID”)。单击(函数(){
var maxstaff_id=maxstaff_id.substr(6);
maxstaff_id=parseInt(maxstaff_id)+1;
$(“#empid”).val(maxstaff_id);
});
}); 
index.php

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
        $.ajax({url: "generateid.php", success: function(result){
            $("#empid").val(result);
        }});
    });
});
</script>
</head>
<body>
<label>Name :</label>
<input type="text" name="name">

<label>ID :</label>
<input type="text" name="empid" id="empid">

<button>Generate Id</button>
</body>
</html>

我希望它能为您工作。

表中的id字段是
整数
varchar
?您有两个
提交
按钮,一个
表单
不正确way@BhargavChudasama在VARCHARHI @ VIO中,我不是PHP的专家,但我认为如果你想增加机会,有几个问题你可以考虑修复。得到你问题的答案。首先,试着看看你是否可以“打破”你的例子,也就是说,试着看看你是否可以添加代码来引诱出任何错误消息并将它们发布在这里。一旦有了实际的错误消息,您就可以更新标题并在描述中添加错误消息。投稿人很难回答除了“什么都没发生”之外没有任何错误信息的问题。快乐编辑:-)您没有使用ajax调用传递任何数据仍然不起作用…感谢您指出其他错误现在是什么问题@但它仍然一事无成:(
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
        $.ajax({url: "generateid.php", success: function(result){
            $("#empid").val(result);
        }});
    });
});
</script>
</head>
<body>
<label>Name :</label>
<input type="text" name="name">

<label>ID :</label>
<input type="text" name="empid" id="empid">

<button>Generate Id</button>
</body>
</html>
$sql = "SELECT max(staffID) as max FROM staff";
        $result = $con->query($sql);
        $row = mysqli_fetch_array($result);

        $eid= $row['max'];
        $eid = substr($eid,6) + 1;
        $neweid = "SFABCD" . $eid;
        echo $neweid;