Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在html中使用表线程将数据插入mysql_Php_Html - Fatal编程技术网

Php 在html中使用表线程将数据插入mysql

Php 在html中使用表线程将数据插入mysql,php,html,Php,Html,在html中插入表中的数据时遇到问题 这是我的HTML: <table id="t1"> <colgroup> <col span="2" class="c2"> <col> <col class="c1"> </colgroup> <thread>

在html中插入表中的数据时遇到问题

这是我的HTML:

<table id="t1">
    <colgroup>
        <col span="2" class="c2">
        <col>
        <col class="c1">
    </colgroup>
    <thread>
        <tr style="text-align: center; font-size: 16px;margin: 50px;">
            <th >Employee ID</th>
            <th>Fullname</th>
            <th>Time Start</th>
            <th>Time End</th>
            <th>Purpose</th>
        </tr>
    </thead>
    <tbody id="insertionPoint" style="text-align: center; font-size: 13px;margin: 50px;">
      
    </tbody>
</table>
我的提交代码html:

<input type="submit" value="Insert" name="submit" onclick="addRow('t1')" />
          
   <?php
   $empid = $var_value = $_SESSION['username'];
    $mysql_hostname = "localhost";
    $mysql_username = "****";
    $mysql_password = "***";
    $mysql_database = "***";
    $conn= mysqli_connect($mysql_hostname,$mysql_username,$mysql_password,$mysql_database);
// Check connection
   
    
    if($_POST[submit])
    {
        
     foreach ($_POST['Employee ID'] as $key => $value) 
        {
            $empid = $_POST["Employee ID"][$key];
            $dstart = $_POST["Time Start"][$key];
            $dend = $_POST["Time End"][$key];
            $purpose = $_POST["Purpose"][$key];
          

            $sql = "INSERT INTO `HR_OT_Items` (`Employee_ID`, `Date_Start`, `Date_end`, `Purpose`)values('$empid','$dstart','$dend','$purpose')";
    if(mysqli_query($conn,$sql)){
 
    echo '<script>alert("Successfully Saved!")</script>'; 
 
    }
    else{
 
     echo 'Connection Failed';
 
    }
     mysqli_close($conn);
            
        }

    }   
?>


必须包含带引号的数组键:

    if($_POST['submit'])
    {

这是您的第一个错误,但也许修复它也可以解决主要问题。否则,我们也需要您的数据库表结构。

尽我所能,您的代码缺少实际添加数据的表单。您的javascript函数(经过一些调整后)将从第一个表单中获取值并构建一个新的HTML表行,但我认为这是第一个误解发生的地方,因为添加到HTML表中的数据将只是文本数据,不会像以前那样出现在任何提交后。为了完成数据的添加,新生成的HTML表行应该在表单元素中包含数据(除非整个过程都是用AJAX完成的)——因此,考虑到这一点,我准备了一个工作演示(精简HTML),希望能够复制您的情况,并展示您如何实现这一点。如果这不是您想要的,那么我没有正确理解我在HTML中看到的内容,也没有正确理解问题

<?PHP
    error_reporting( E_ALL );
?>
<!DOCTYPE html>
<html lang='en'>
    <head>
        <meta charset='utf-8' />
        <title></title>
        <style>
            table,td{border:1px solid gray}
            td,th{padding:0.5rem;}
            th{background:gray;color:white;}
            table td input[type='text']{border:none;}
        </style>
        <script>
            document.addEventListener('DOMContentLoaded',function(){
            
                // the input element needs the date formatted in a particular manner
                // this was a quick way to do that
                var myTime = document.getElementById("myTime");
                    myTime.value = ( new Date() ).toISOString().replace(/\Z/gi,'');
               
               
                function insertData(e){
                    e.preventDefault()
                    
                    var str = myTime.value;    
                    var e = document.getElementById("hours");
                    var d = document.getElementById("mins");
                    
                    var strUser = e.options[e.selectedIndex].text;
                    var strUser1 = d.options[d.selectedIndex].text;
                    
                    var a = parseInt(strUser);
                    var c = parseInt(strUser1);
        
                    var empid = document.getElementById("empid").value;
                    var empname = document.getElementById("employees").value;
        
                    var start = new Date(str);
                    var end = new Date(str);
                        end.setHours(end.getHours() + a);
                        end.setMinutes(end.getMinutes() + c);
        
                    var dateOptions = { day: '2-digit', month: '2-digit', year: 'numeric' };
                    var timeOptions = { hour12: false, hour: '2-digit', minute:'2-digit' };
        
                    var starting = start.toLocaleString('en', dateOptions) + ' ' +  start.toLocaleString('en', timeOptions);
                    var ending = end.toLocaleString('en', dateOptions) + ' ' +  end.toLocaleString('en', timeOptions);
                    
                    /*
                        Each new row will have `input` elements in each cell
                        - these input elements are used to actually ADD the
                        data when the form is submitted.
                    */
                    var purpose = document.getElementById("purpose").value;
                    document.getElementById("insertionPoint").innerHTML += "<tr><td><input type='text' name='empid[]' value='" + empid + "' /></td><td><input type='text' name='name[]' value='" + empname + "' /></td><td><input type='text' name='time_start[]' value='" + starting + "' /></td><td><input type='text' name='time_end[]' value='" + ending +  "' /></td><td><input type='text' name='purpose[]' value='" + purpose + "' /></td></tr>";

                    document.getElementById("empid").value = "";
                    document.getElementById("employees").value = "";
                    document.getElementById("myTime").value = "";
                    document.getElementById("hours").value = "0";
                    document.getElementById("mins").value = "0";
                    document.getElementById("purpose").value = "";  
                    
                    
                    myTime.value = ( new Date() ).toISOString().replace(/\Z/gi,'');
                }
                
                function addRow(e){
                    document.forms.add.submit()
                }
                
                function ClearData(e){
                    e.preventDefault()
                    document.getElementById("empid").value = "";
                    document.getElementById("employees").value = "";
                    document.getElementById("myTime").value = "";
                    document.getElementById("hours").value = "0";
                    document.getElementById("mins").value = "0";
                    document.getElementById("purpose").value = "";                  
                }
               
               
               
                document.querySelector('input[type="button"][name="insertdata"]').addEventListener('click',insertData)
                document.querySelector('input[type="submit"][name="addrow"]').addEventListener('click',addRow)
                document.querySelector('input[type="button"][name="cleardate"]').addEventListener('click',ClearData)
            })

        </script>
    </head>
    <body>
        <?php
            
            # DUMMY DATA
            $empids=array(
                123456,78915423,4234645,64564573,2345756,23428754
            );
            $fnames=array(
                'douglas','horatio','napoleon','bill','pocahontas','geronimo'
            );
        
        ?>
        
        
        <form method='POST'>
            <select name='empid' id='empid' onchange='employees'>
                <option selected hidden disabled>--Select--
                <?php
                    if( !empty( $empids ) ) {
                        foreach( $empids as $empid ) {
                ?>
                <option value='<?php echo $empid;?>'>
                    <?php echo $empid;?>
                
                <?php
                        }
                    }
                ?> 
            </select>
                    
            <select name='employees' id='employees' onchange='empid'>
                <option selected hidden disabled>--Select--
                <?php
                    if( !empty( $fnames ) ) {
                        foreach( $fnames as $fname ) {
                ?>
                <option value='<?php echo $fname;?>'> 
                    <?php echo $fname;?>
                
                <?php
                        }
                    }
                ?> 
            </select>

            <input type='datetime-local' id='myTime' />
            
            <select name='hours' id='hours'>
                <option selected hidden disabled>--Select--
                <option value='0'>0
                <option value='1'>1
                <option value='2'>2
                <option value='3'>3
                <option value='4'>4
                <option value='5'>5
                <option value='6'>6
                <option value='7'>7
                <option value='8'>8
                <option value='9'>9
                <option value='10'>10
                <option value='11'>11
                <option value='12'>12
                <option value='13'>13
                <option value='14'>14
                <option value='15'>15
                <option value='16'>16
                <option value='17'>17
                <option value='18'>18
                <option value='19'>19
                <option value='20'>20
                <option value='21'>21
                <option value='22'>22
                <option value='23'>23
                <option value='24'>24
                <option value='25'>25
                <option value='26'>26
                <option value='27'>27
                <option value='28'>28
                <option value='29'>29
                <option value='30'>30
            </select>

            
            <select name='mins' id='mins'>
                <option selected hidden disabled>--Select--
                <option value='0'>0
                <option value='30'>30
            </select>
            
            <input type='button' value='Clear' name='cleardate' />
            <textarea name='textarea' id='purpose' style='width:100%;height:170px;'></textarea>
            
            <input type='button' value='Add entry' name='insertdata' />
            <input type='submit' value='Insert' name='addrow' form='add' /><!-- assigned to other form that actually submits the data -->
        </form>
    
    
    
        <form id='add' method='post'>
           <table id='t1'>
              <colgroup>
                 <col span='2' class='c2'>
                 <col>
                 <col class='c1'>
              </colgroup>
              <thead>
                 <tr style='text-align: center; font-size: 16px;margin: 50px;'>
                    <th>Employee ID</th>
                    <th>Fullname</th>
                    <th>Time Start</th>
                    <th>Time End</th>
                    <th>Purpose</th>
                 </tr>
              </thead>
              <tbody id='insertionPoint' style='text-align: center; font-size: 13px;margin: 50px;'><!-- dynamic content here --></tbody>
           </table>
        </form>
        
        
        <?php
        
            $dbhost =   'localhost';
            $dbuser =   'root';
            $dbpwd  =   'xxx';
            $dbname =   'xxx';
            
            try{
                mysqli_report( MYSQLI_REPORT_STRICT );
                $db = new mysqli( $dbhost, $dbuser, $dbpwd, $dbname );
            }catch( Exception $e ){
                echo $e->getMessage();
            }
            
            if( $_SERVER['REQUEST_METHOD']=='POST' ){
                
                if( isset( 
                    $_POST['empid'],
                    $_POST['time_start'],
                    $_POST['time_end'],
                    $_POST['purpose']
                )){
                    
                    $sql='INSERT INTO `hr_ot_items` ( `employee_id`, `date_start`, `date_end`, `purpose` ) VALUES ( ?, ?, ?, ? )';
                    $stmt=$db->prepare( $sql );
                    $stmt->bind_param('ssss', $empid, $start, $end, $purpose );
                    
                    foreach( $_POST['empid'] as $i => $empid ){
                        $start=date( 'Y-m-d H:i:s', strtotime( $_POST['time_start'][$i] ) );
                        $end=date( 'Y-m-d H:i:s', strtotime( $_POST['time_end'][$i] ) );
                        $purpose=$_POST['purpose'][$i];
                        
                        $res=$stmt->execute();
                    }
                    $stmt->close();
                }
            }
        ?>      
        
        
    </body>
</html>

表,td{边框:1px实心灰色}
td,th{padding:0.5rem;}
{背景:灰色;颜色:白色;}
表td输入[type='text']{border:none;}
document.addEventListener('DOMContentLoaded',function(){
//输入元素需要以特定方式格式化日期
//这是一种快速的方法
var myTime=document.getElementById(“myTime”);
myTime.value=(新日期()).toISOString().replace(/\Z/gi');
函数插入数据(e){
e、 预防默认值()
var str=myTime.value;
var e=document.getElementById(“小时”);
var d=document.getElementById(“分钟”);
var strUser=e.options[e.selectedIndex].text;
var strUser1=d.options[d.selectedIndex].text;
var a=parseInt(strUser);
var c=parseInt(struer1);
var empid=document.getElementById(“empid”).value;
var empname=document.getElementById(“employees”).value;
var开始=新日期(str);
var end=新日期(str);
end.setHours(end.getHours()+a);
end.setMinutes(end.getMinutes()+c);
var dateOptions={天:“2位”,月:“2位”,年:“数字”};
var timeOptions={hour12:false,hour:'2位',minute:'2位'};
var start=start.tolocalString('en',dateOptions)+''+start.tolocalString('en',timeOptions);
var end=end.tolocalString('en',dateOptions)+''+end.tolocalString('en',timeOptions);
/*
每一新行在每个单元格中都有'input'元素
-这些输入元素用于实际添加
提交表单时的数据。
*/
var-purpose=document.getElementById(“purpose”).value;
document.getElementById(“插入点”).innerHTML+=“”;
document.getElementById(“empid”).value=“”;
document.getElementById(“员工”).value=“”;
document.getElementById(“myTime”).value=“”;
document.getElementById(“小时”).value=“0”;
document.getElementById(“分钟”).value=“0”;
document.getElementById(“目的”).value=“”;
myTime.value=(新日期()).toISOString().replace(/\Z/gi');
}
函数addRow(e){
document.forms.add.submit()
}
函数ClearData(e){
e、 预防默认值()
document.getElementById(“empid”).value=“”;
document.getElementById(“员工”).value=“”;
document.getElementById(“myTime”).value=“”;
document.getElementById(“小时”).value=“0”;
document.getElementById(“分钟”).value=“0”;
document.getElementById(“目的”).value=“”;
}
document.querySelector('input[type=“button”][name=“insertdata”]”)。addEventListener('click',insertdata)
document.querySelector('input[type=“submit”][name=“addrow”]')。addEventListener('click',addrow'))
document.querySelector('input[type=“button”][name=“cleardate”]”)。addEventListener('click',ClearData)
})
--挑选--
--挑选--
--挑选--
0
1.
2.
3.
4.
5.
6.
7.
8.
9
10
11
12
13
14
15
16
17
18
<script language="javascript">
    var myTime = document.getElementById("myTime");
    myTime.value = new Date(myTime);
   
   
    function insertData() {
        var str = myTime.value;    
        var e = document.getElementById("hours");
        var d = document.getElementById("mins");
        var strUser = e.options[e.selectedIndex].text;
        var strUser1 = d.options[d.selectedIndex].text;



        var a = parseInt(strUser);
        var c = parseInt(strUser1);

        var empid = document.getElementById("empid").value;
        var empname = document.getElementById("employees").value;

        var start =  new Date(str);
        var end = new Date(str);

        end.setHours(end.getHours() + a);
        end.setMinutes(end.getMinutes() + c);



        var dateOptions = { day: '2-digit', month: '2-digit', year: 'numeric' };
        var timeOptions = { hour12: false, hour: '2-digit', minute:'2-digit' };

        var starting = start.toLocaleString('en', dateOptions) + ' ' +  start.toLocaleString('en', timeOptions);

        var ending = end.toLocaleString('en', dateOptions) + ' ' +  end.toLocaleString('en', timeOptions);



        var purpose = document.getElementById("purpose").value;
        document.getElementById("insertionPoint").innerHTML += "<tr><td>" + empid + "</td><td>" + empname + "</td><td>" + starting + "</td><td>" + ending +  "</td><td>" + purpose + "</td></tr>";

        // The below part is to clear the values after the entry is added.

        document.getElementById("empid").value = "";
        document.getElementById("employees").value = "";
        document.getElementById("myTime").value = "";
        document.getElementById("hours").value = "0";
        document.getElementById("mins").value = "0";
        document.getElementById("purpose").value = "";
    }
</script>
<script language="javascript">
    function ClearData() {
        document.getElementById("empid").value = "";
        document.getElementById("employees").value = "";
        document.getElementById("myTime").value = "";
        document.getElementById("hours").value = "0";
        document.getElementById("mins").value = "0";
        document.getElementById("purpose").value = "";
    }
</script>
    if($_POST['submit'])
    {
<?PHP
    error_reporting( E_ALL );
?>
<!DOCTYPE html>
<html lang='en'>
    <head>
        <meta charset='utf-8' />
        <title></title>
        <style>
            table,td{border:1px solid gray}
            td,th{padding:0.5rem;}
            th{background:gray;color:white;}
            table td input[type='text']{border:none;}
        </style>
        <script>
            document.addEventListener('DOMContentLoaded',function(){
            
                // the input element needs the date formatted in a particular manner
                // this was a quick way to do that
                var myTime = document.getElementById("myTime");
                    myTime.value = ( new Date() ).toISOString().replace(/\Z/gi,'');
               
               
                function insertData(e){
                    e.preventDefault()
                    
                    var str = myTime.value;    
                    var e = document.getElementById("hours");
                    var d = document.getElementById("mins");
                    
                    var strUser = e.options[e.selectedIndex].text;
                    var strUser1 = d.options[d.selectedIndex].text;
                    
                    var a = parseInt(strUser);
                    var c = parseInt(strUser1);
        
                    var empid = document.getElementById("empid").value;
                    var empname = document.getElementById("employees").value;
        
                    var start = new Date(str);
                    var end = new Date(str);
                        end.setHours(end.getHours() + a);
                        end.setMinutes(end.getMinutes() + c);
        
                    var dateOptions = { day: '2-digit', month: '2-digit', year: 'numeric' };
                    var timeOptions = { hour12: false, hour: '2-digit', minute:'2-digit' };
        
                    var starting = start.toLocaleString('en', dateOptions) + ' ' +  start.toLocaleString('en', timeOptions);
                    var ending = end.toLocaleString('en', dateOptions) + ' ' +  end.toLocaleString('en', timeOptions);
                    
                    /*
                        Each new row will have `input` elements in each cell
                        - these input elements are used to actually ADD the
                        data when the form is submitted.
                    */
                    var purpose = document.getElementById("purpose").value;
                    document.getElementById("insertionPoint").innerHTML += "<tr><td><input type='text' name='empid[]' value='" + empid + "' /></td><td><input type='text' name='name[]' value='" + empname + "' /></td><td><input type='text' name='time_start[]' value='" + starting + "' /></td><td><input type='text' name='time_end[]' value='" + ending +  "' /></td><td><input type='text' name='purpose[]' value='" + purpose + "' /></td></tr>";

                    document.getElementById("empid").value = "";
                    document.getElementById("employees").value = "";
                    document.getElementById("myTime").value = "";
                    document.getElementById("hours").value = "0";
                    document.getElementById("mins").value = "0";
                    document.getElementById("purpose").value = "";  
                    
                    
                    myTime.value = ( new Date() ).toISOString().replace(/\Z/gi,'');
                }
                
                function addRow(e){
                    document.forms.add.submit()
                }
                
                function ClearData(e){
                    e.preventDefault()
                    document.getElementById("empid").value = "";
                    document.getElementById("employees").value = "";
                    document.getElementById("myTime").value = "";
                    document.getElementById("hours").value = "0";
                    document.getElementById("mins").value = "0";
                    document.getElementById("purpose").value = "";                  
                }
               
               
               
                document.querySelector('input[type="button"][name="insertdata"]').addEventListener('click',insertData)
                document.querySelector('input[type="submit"][name="addrow"]').addEventListener('click',addRow)
                document.querySelector('input[type="button"][name="cleardate"]').addEventListener('click',ClearData)
            })

        </script>
    </head>
    <body>
        <?php
            
            # DUMMY DATA
            $empids=array(
                123456,78915423,4234645,64564573,2345756,23428754
            );
            $fnames=array(
                'douglas','horatio','napoleon','bill','pocahontas','geronimo'
            );
        
        ?>
        
        
        <form method='POST'>
            <select name='empid' id='empid' onchange='employees'>
                <option selected hidden disabled>--Select--
                <?php
                    if( !empty( $empids ) ) {
                        foreach( $empids as $empid ) {
                ?>
                <option value='<?php echo $empid;?>'>
                    <?php echo $empid;?>
                
                <?php
                        }
                    }
                ?> 
            </select>
                    
            <select name='employees' id='employees' onchange='empid'>
                <option selected hidden disabled>--Select--
                <?php
                    if( !empty( $fnames ) ) {
                        foreach( $fnames as $fname ) {
                ?>
                <option value='<?php echo $fname;?>'> 
                    <?php echo $fname;?>
                
                <?php
                        }
                    }
                ?> 
            </select>

            <input type='datetime-local' id='myTime' />
            
            <select name='hours' id='hours'>
                <option selected hidden disabled>--Select--
                <option value='0'>0
                <option value='1'>1
                <option value='2'>2
                <option value='3'>3
                <option value='4'>4
                <option value='5'>5
                <option value='6'>6
                <option value='7'>7
                <option value='8'>8
                <option value='9'>9
                <option value='10'>10
                <option value='11'>11
                <option value='12'>12
                <option value='13'>13
                <option value='14'>14
                <option value='15'>15
                <option value='16'>16
                <option value='17'>17
                <option value='18'>18
                <option value='19'>19
                <option value='20'>20
                <option value='21'>21
                <option value='22'>22
                <option value='23'>23
                <option value='24'>24
                <option value='25'>25
                <option value='26'>26
                <option value='27'>27
                <option value='28'>28
                <option value='29'>29
                <option value='30'>30
            </select>

            
            <select name='mins' id='mins'>
                <option selected hidden disabled>--Select--
                <option value='0'>0
                <option value='30'>30
            </select>
            
            <input type='button' value='Clear' name='cleardate' />
            <textarea name='textarea' id='purpose' style='width:100%;height:170px;'></textarea>
            
            <input type='button' value='Add entry' name='insertdata' />
            <input type='submit' value='Insert' name='addrow' form='add' /><!-- assigned to other form that actually submits the data -->
        </form>
    
    
    
        <form id='add' method='post'>
           <table id='t1'>
              <colgroup>
                 <col span='2' class='c2'>
                 <col>
                 <col class='c1'>
              </colgroup>
              <thead>
                 <tr style='text-align: center; font-size: 16px;margin: 50px;'>
                    <th>Employee ID</th>
                    <th>Fullname</th>
                    <th>Time Start</th>
                    <th>Time End</th>
                    <th>Purpose</th>
                 </tr>
              </thead>
              <tbody id='insertionPoint' style='text-align: center; font-size: 13px;margin: 50px;'><!-- dynamic content here --></tbody>
           </table>
        </form>
        
        
        <?php
        
            $dbhost =   'localhost';
            $dbuser =   'root';
            $dbpwd  =   'xxx';
            $dbname =   'xxx';
            
            try{
                mysqli_report( MYSQLI_REPORT_STRICT );
                $db = new mysqli( $dbhost, $dbuser, $dbpwd, $dbname );
            }catch( Exception $e ){
                echo $e->getMessage();
            }
            
            if( $_SERVER['REQUEST_METHOD']=='POST' ){
                
                if( isset( 
                    $_POST['empid'],
                    $_POST['time_start'],
                    $_POST['time_end'],
                    $_POST['purpose']
                )){
                    
                    $sql='INSERT INTO `hr_ot_items` ( `employee_id`, `date_start`, `date_end`, `purpose` ) VALUES ( ?, ?, ?, ? )';
                    $stmt=$db->prepare( $sql );
                    $stmt->bind_param('ssss', $empid, $start, $end, $purpose );
                    
                    foreach( $_POST['empid'] as $i => $empid ){
                        $start=date( 'Y-m-d H:i:s', strtotime( $_POST['time_start'][$i] ) );
                        $end=date( 'Y-m-d H:i:s', strtotime( $_POST['time_end'][$i] ) );
                        $purpose=$_POST['purpose'][$i];
                        
                        $res=$stmt->execute();
                    }
                    $stmt->close();
                }
            }
        ?>      
        
        
    </body>
</html>