PHP - 多个表单,在提交时从两者中获取值?

标签 php html forms post

我现在有点卡住了,请帮忙。

我有一个日历,多个部门正在使用它来输入他们的日程安排。要求每个用户完成 1x 选择和 2x 输入字段,这些字段分为 FORM 1 和 FORM 2

表格 1:

  • 部门代码(onclick提交事件)

表格 2:

  • 姓名
  • 日期
  • 提交按钮

用户选择他/她的部门代码后,日历将刷新并仅获取该特定部门的条目(这意味着它将过滤部门代码的所有记录)。之后,用户必须输入他的用户名并选择一个日期,然后按下提交按钮(表格 2)。

现在,问题是为了正确提交表格 2,我需要知道表格 1 中的部门代码。此外,我在按下提交按钮时无法阻止日历刷新(表格 1)表格 2。

简而言之,在访问两个表单的数据时,如何清楚地区分表单 1 和表单 2 之间的 ($_POST)?

PHP

<?php
// SHOULD BE EXECUTED AFTER THE SUBMIT BUTTON WAS CLICKED
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['type']) && ($_POST['type']=='new_entry')) {

    // include connection details
    include '../../plugins/MySQL/connect_db.php';

    // Open a new connection to the MySQL server
    $con = new mysqli($dbhost,$dbuser,$dbpass,$dbname);

    // Output any connection error
    if ($con->connect_error) {
        die('Error : ('. $con->connect_errno .') '. $con->connect_error);
    }

    // define variables
    $table = 'calendar';
    $type = mysqli_real_escape_string($con,$_POST['type']);
    $holidex = mysqli_real_escape_string($con,$_POST['holidex']);

    if($type == 'new_entry')
    {               
        // define variables and query
        $mod_property = mysqli_real_escape_string($con,$_POST['holidex']);
        $mod_name = mysqli_real_escape_string($con,$_POST['mod_name']);
        $mod_date = date('Y-m-d',strtotime($_POST['mod_date']));

        $sql = "INSERT INTO calendar (`title`, `startdate`, `enddate`, `allDay`, `color`, `holidex`) VALUES ('$mod_name','$mod_date','$mod_date','true','','$mod_property')";

        print($sql);

        $result = $con->query($sql) or die('<p>Could not submit new MOD record into database: ' . MYSQLI_ERROR() . '</p>');

        $result->free();
    }

    $con->close();
}
?>



        <form name="form1" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
        <!-- <form name="mod_form" action="../../plugins/MySQL/ajax_action.php?type=new_entry" method="POST"> -->

          <!-- Property -->
          <div class="col-md-4">
            <label>Property</label>
            <div class="input-group">
                <span class="input-group-addon"><i class="fa fa-server"></i></span>
                <select name="holidex" id="holidex" class="form-control select2" style="width: 100%;" data-placeholder="Select your property" onchange="this.form.submit();" method="POST" <?php if($_SESSION['Access']=='User') { echo "disabled"; } ?>>

                    // get all my departments and their respective codes
                    <option value="1">Dept. 1</option>
                    <option value="2">Dept. 2</option>
                    <option value="3">Dept. 3</option>

                </select>
            </div>
            <!-- /btn-group -->
          </div>
          <!-- /.property -->

        </form>

        <form name="form2" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
          <!-- MOD Name -->
          <div class="col-md-4">
            <label>MOD Name</label>
            <div class="input-group">
                <span class="input-group-addon"><i class="fa fa-user"></i></span>
                <select name="mod_name" id="mod_name" class="form-control select2" style="width: 100%;" data-placeholder="Select a name">
                    <option value=""></option>
                    <option value="1">User1</option>
                    <option value="2">User2</option>
                    <option value="3">User3</option>
                </select>
            </div>
            <!-- /.input-group -->
          </div>
          <!-- /.mod name -->

          <!-- MOD Date -->
          <div class="col-md-3">
            <label>MOD Date</label>
            <div class="input-group">
              <span class="input-group-addon"><i class="fa fa-server"></i></span>
              <input type="date" class="form-control" name="daterangepicker" id="daterangepicker" />
              <!-- <input type="date" id="mod_date" name="mod_date" class="form-control" style="width: 100%;"> -->
            </div>
          </div>
          <!-- /.mod date -->

            // hidden input field to determine the type and help differentiate the $_POST submissions
            <input type="hidden" class="form-control" name="type" id="type" value="new_entry"/>

          <!-- Submit button -->
          <div class="col-md-1 text-center">
            <label>&nbsp;</label>
            <button type="submit" name="btnSubmit" class="btn btn-primary btn-block" onclick="this.disabled=true; this.value = 'Wait...'; this.form.submit(); return true;">Submit</button>
          </div>
          <!-- /.submit button -->

        </form>
        <!-- /.form 2 -->

最佳答案

按照 SiteThief 的建议,我将完全跳过

方法,并通过 AJAX 将结果提交到我的 php 处理程序文件。工作起来就像一个魅力,没有讨厌的表单提交问题。

JS

<script>
    // SAVE NEW DEPARTMENT RECORD - SAVE BUTTON
    $("#SubmitButton").click(function() {

        // check that input fields are not empty
        if($("#holidex").val()!="" && $("#mod_name").val()!="" && $("#mod_date").val()!="") {

            $.ajax({
                url: "../../plugins/MySQL/ajax_action.php",
                type: "POST",
                async: true, 
                data: { action:"mod_calendar",type:"new_entry",holidex:$("#holidex").val(),mod_name:$("#mod_name").val(),mod_date:$("#mod_date").val()},
                dataType: "html",           

                success: function(data) {
                    $('#mod_output').html(data); 
                    drawVisualization();
                },  
            });
        } else {
            //notify the user they need to enter data
            alert("Please choose a hotel, staff name and MOD date from the list.");
            return;
        }

        // close modal and refresh page
        setTimeout(function(){location.reload()}, 1000);
        return;
    });
</script>

关于PHP - 多个表单,在提交时从两者中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40862151/

相关文章:

php - 使用GET参数将CSV列表从URL保存到数据库-PHP/MySQL

javascript - PHP JSON header 导致 JSON.parse 错误(使用 jQuery)

使用三元运算符的 PHP 未定义索引

javascript - 用Facebook图自动填写表格

javascript - 如何在jQuery中找到最接近的图像src路径

javascript - 如何在javascript中使用键盘移动对象

javascript - 在div中显示所有结果

html - Eclipse 中 HTML 标签的自动完成

php - 在表单中打印JS变量

javascript - 如何获得选择框中所有值的列表?