gpt4 book ai didi

php - 多个页面上的多个按钮执行几乎相同的操作

转载 作者:太空宇宙 更新时间:2023-11-04 16:19:11 25 4
gpt4 key购买 nike

我需要一些关于我的脚本的建议。我正在开发点名系统,我想改掉我的一个坏习惯。

这是我想要的图片: http://i.stack.imgur.com/UdqMQ.png

特别是每个日期列上方的按钮。这些按钮中的每一个都做几乎相同的事情,但在我的 SQL 数据库中用于不同的日期。

所以这是我的代码:

输入:

<th><input type='submit' id='mAllR' name='mAllR' value='All Attended'></th>
<th><input type='submit' id='tAllR' name='tAllR' value='All Attended'></th>
<th><input type='submit' id='wAllR' name='wAllR' value='All Attended'></th>
<th><input type='submit' id='tAllR' name='tAllR' value='All Attended'></th>
<th><input type='submit' id='fAllR' name='fAllR' value='All Attended'></th>

如您所见,基本上每个按钮都有自己的 ID,可以通过名称调用函数。

如果只有 5 个输入按钮(在我的示例中有),这对我来说没问题,但是有 7 个部门,这意味着 35 个按钮。我不想制作 35 个功能几乎相同的功能。

我必须使用的代码如下:

if(isset($_POST['mAllR']))
{
$index = 0;
foreach($_POST as $key => $value)
{
while($index < $_SESSION['amountT'])
{
$index++;
$sql = ("UPDATE `Employee` SET `Monday`='Attended' WHERE `Job`='Remarketing'");
mysqli_query($con, $sql);
}
}
if($sql)
{
mysqli_close($con);
sleep(4);
echo '<meta http-equiv="refresh" content="0">';
}
}

现在的每个按钮都需要它自己的版本。 (不要担心 session ETC,这些 session 在别处处理以避免重叠/欠重叠。

所以真的,代码不是问题,我只是想将其优化为更少的代码。欢迎提出任何建议。

最佳答案

因为你所有的按钮都做几乎相同的事情,我猜在每种情况下只是改变查询中的一些值。

我会这样做

首先我会创建一个数组,其中包含每个按钮的不同数据(日期和工作,因为这是我能看到代码需要的唯一区别)

// Monday
$array["mAllR"]["day"] = "Monday";
$array["mAllR"]["job"] = "Marketing";
// Tuesday
$array["tAllR"]["day"] = "Tuesday";
$array["tAllR"]["job"] = "Aonther job";
// Etc...

然后在 foreach 循环中我将检查按钮的名称(请参阅数组中的名称主键是名称按钮)

foreach($_POST as $key => $value) {
$button = "";
// I check for the value of the button to get the key (button's name)
if($value == 'All attended') {
$button = $key;

// Then I call the 'day' and 'job' values from the array
// where the main key is the button's name
while($index < $_SESSION['amountT'])
{
$index++;

// See that I pass the day and job defined in the array using the button's name
$sql = ("UPDATE `Employee` SET `"+$array[$button]["day"]+"`='Attended' WHERE `Job`='"+$array[$button]["job"]+"'");
mysqli_query($con, $sql);
}
}
}

编辑:将其包装在一个函数中。

// Wrap
function postFunc() {
// The code above
}

// Use
if(isset($_POST)) {
postFunc();
}

这就是我的方法。但它有一个缺点,因为我正在检查按钮的值并在该条件下执行所有操作,所以我失去了对您可能想要控制的所有其他字段的控制。我在你试图控制另一个字段的代码中没有看到,所以这种方法可能会有用。

关于php - 多个页面上的多个按钮执行几乎相同的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30471835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com