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

Php 网页上的多个按钮正在调用所有按钮操作,php,html,Php,Html,我的网页上有两个提交按钮,它们被指定做不同的事情。我的问题是,单击其中一个按钮会调用两个按钮的操作。如何使单击1按钮仅调用关联的表单提交操作 (这是我第一天使用php) 第一种形式: <form id="frm1" onsubmit="document.getElementById('frm1').submit();"> <center><br> <input style="width:150px" name="data" typ

我的网页上有两个提交按钮,它们被指定做不同的事情。我的问题是,单击其中一个按钮会调用两个按钮的操作。如何使单击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>';
}



为您的提交按钮提供一个
和一个
名称
使用
$\u GET
(在您的情况下)或
$\u 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>';
}
?>


这非常紧凑,可以保持url干净。

看起来相同的表单提交了两次。给按钮一个名称或id,并根据它绑定表单,而不是在表单中提交方法。

在您的第一个表单中,按钮标签未正确关闭,这就是为什么第一个表单是标签未正确关闭,请使用此

<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>



在您的示例get中,由于您的表单使用getYes,因此该值与我为btn1给出的示例中的btn1类似:-)请尝试更好的方法“”,并使用post而不是getSee我的上一篇文章,您没有设置要将表单发送到的页面的操作。在我的例子中,你的案例是空的,你能为这个写代码吗?我(非常)不熟悉php,不明白bind form是什么意思?在frm1中,button标记没有关闭。没有必要:)@Ekin谢谢我更新了我的ans,我只是用按钮标签检查了一下。
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>';
}