网页上的多个按钮正在调用所有按钮操作


Multiple buttons on webpage are invoking all button actions

我的网页上有两个提交按钮,它们被分配来做不同的事情。我的问题是单击其中一个按钮正在调用两个按钮的操作。如何使单击 1 按钮仅调用关联的表单提交操作?

(这是我使用php的第一天)。

第一种形式:

<form id="frm1" onsubmit="document.getElementById('frm1').submit();">
    <center><br>
        <input style="width:150px" name="data" type="text" autocomplete="off" placeholder="Add Time (hh:mm:ss)">
        </input>
        <input name="id" type="hidden" value="<?php echo $ID; ?>">
        <input name="addTime" type="hidden" value="true">
        <button style="width:40px" type="submit" class='btn btn-success pull-right'>
          <i class="icon-plus"></i>
        </button
</form>

第二种形式:

<form id="frm2" onsubmit="document.getElementById('frm2').submit();">
    <center>
        Edit Group:
        <?php
            #
            $styles = sqlToQuery("SELECT groupID, Name from sha_scheduler_dev.sha_scheduler_map_job_group");
            echo '<select style="width:100" name="groupNum">';
            for($i = 0; $i < count($styles); $i ++){
                echo ' <option style="width:100" value="'.$styles[$i][0].'">'.$styles[$i][1].'</option>';       
            }
            echo '</select><br>';                           
        ?>
        <input name="editGroup" type="hidden" value="true"><br>
        <button type="submit" class='btn btn-info pull-right'>
                    &nbsp;&nbsp;&nbsp;&nbsp;Submit Group&nbsp;&nbsp;&nbsp;&nbsp;
        </button>
</form>

检查按钮是否已提交:

if ($_GET['addTime']==='true'){
    sqlToQuery("replace into sha_scheduler_dev.sha_scheduler_map_jobtimes (job_ID, time_to_run) values (".$ID." ,'".$_GET['data']."')");
    echo '<script>window.location.assign("'.$redir.'?id='.$ID.'");</script>';
}
if ($_GET['editGroup']==='true'){
    sqlToQuery("UPDATE sha_scheduler_dev.sha_scheduler_jobs a SET a.group = '".$_GET['groupNum']."' WHERE a.job_ID = ".$ID." ");
    echo '<script>window.location.assign("'.$redir.'?id='.$ID.'");</script>';
}

在你的第一个表单中,按钮标签没有正确关闭,这就是为什么第一个表单是标签没有正确关闭,使用这个,

<form id="frm1" onsubmit="document.getElementById('frm1').submit();">
    <center><br>
        <input style="width:150px" name="data" type="text" autocomplete="off" placeholder="Add Time (hh:mm:ss)">
        <input name="id" type="hidden" value="<?php echo $ID; ?>">
        <input name="addTime" type="hidden" value="true">
        <button style="width:40px" type="submit" class='btn btn-success pull-right'>
          <i class="icon-plus"></i>
        </button>
     </center>   
</form>

还可以像这样更改您的 php 代码

if ( isset($_GET['addTime']) && $_GET['addTime']==='true'){
    sqlToQuery("replace into sha_scheduler_dev.sha_scheduler_map_jobtimes (job_ID, time_to_run) values (".$ID." ,'".$_GET['data']."')");
    echo '<script>window.location.assign("'.$redir.'?id='.$ID.'");</script>';
}
if ( isset($_GET['editGroup']) &&  $_GET['editGroup']==='true'){
    sqlToQuery("UPDATE sha_scheduler_dev.sha_scheduler_jobs a SET a.group = '".$_GET['groupNum']."' WHERE a.job_ID = ".$ID." ");
    echo '<script>window.location.assign("'.$redir.'?id='.$ID.'");</script>';
}

给你的提交按钮一个value和一个name,使用$_GET(在你的例子中)或$_POST来捕获不同的值

更新:(也许只是为了尝试一下)

第一种形式

<form id="frm1" action="" method="post">
    <center><br>
        <input style="width:150px" name="data" type="text" autocomplete="off" placeholder="Add Time (hh:mm:ss)" />
        <input name="id" type="hidden" value="<?php echo $ID; ?>" />
        <input style="width:50px" type="submit" class='btn btn-success pull-right' name="submit_form1" value="submit" />
        <i class="icon-plus"></i>
        </button>
    </center>
</form>

第二种形式

<form id="frm2" name="frm2" action="" method="post">
    <center>
        Edit Group:
        <?php
        $styles = sqlToQuery("SELECT groupID, Name from sha_scheduler_dev.sha_scheduler_map_job_group");
        echo '<select style="width:100" name="groupNum">';
        for ($i = 0; $i < count($styles); $i ++)
        {
            echo ' <option style="width:100" value="' . $styles[$i][0] . '">' . $styles[$i][1] . '</option>';
        }
        echo '</select><br>';
        ?>
        <input type="submit" class='btn btn-info pull-right' name="submit_form2" value="Submit Group" />
</form>

.PHP

<?php
if (filter_input(INPUT_POST, "submit_form1"))
{
    // {Check for empty var on data}
    sqlToQuery("replace into sha_scheduler_dev.sha_scheduler_map_jobtimes (job_ID, time_to_run) values (" . $ID . " ,'" . $_GET['data'] . "')");
    echo '<script>window.location.assign("' . $redir . '?id=' . $ID . '");</script>';
}
if (filter_input(INPUT_POST, "submit_form2"))
{
    sqlToQuery("UPDATE sha_scheduler_dev.sha_scheduler_jobs a SET a.group = '" . $_GET['groupNum'] . "' WHERE a.job_ID = " . $ID . " ");
    echo '<script>window.location.assign("' . $redir . '?id=' . $ID . '");</script>';
}
?>

这非常紧凑,可以保持您的网址干净。