使用javascript和php的数组

使用javascript和php的数组,php,Php,我有一个函数,可以在当月创建文本区域深化。所以如果是三月,那么是31个地区。但是现在的问题是,我不能在数据库中添加任何内容。我试着把我的函数做成数组,他改变了我的php,使它像函数一样。但我不确定问题在哪里。问题是它在MySQL数据库中插入空值 功能: var showDate = new Date(); var months = ["Januari", "Februari", "March", "April", "May", "June", "July", "Aug

我有一个函数,可以在当月创建
文本区域
深化。所以如果是三月,那么是31个地区。但是现在的问题是,我不能在数据库中添加任何内容。我试着把我的函数做成数组,他改变了我的php,使它像函数一样。但我不确定问题在哪里。问题是它在MySQL数据库中插入空值

功能:

var showDate = new Date();
var months = ["Januari", "Februari", "March", "April", "May", "June",
              "July", "Augusti", "September", "October", "November", "December"];
var weeks = ["Sunday","Monday","Tuseday","Wednesday","Thursday","Friday","Saturday"];


  function drawTable(forDate) {
    const daysInMonth = new Date(
        forDate.getFullYear(),
        forDate.getMonth() + 1,
        0
    ).getDate();

    const date = [
        forDate.getFullYear(),
        (forDate.getMonth() + 1 + '').padStart(2, 0)
    ]
    .join('-');

    const table = document.getElementById("table");
    table.innerHTML = "";

    for (let day = 1; day <= daysInMonth; day++) {
        const dateString = date + '-' + (day + '').padStart(2, 0);

        const row = document.createElement("tr");
        const cell = document.createElement("td");
        const textarea = document.createElement("textarea");

        textarea.setAttribute("name", "day[]");
        textarea.setAttribute("value", dateString);
        textarea.innerHTML = dateString;
        textarea.setAttribute("placeholder", day);

        cell.appendChild(textarea);
        row.appendChild(cell);
        table.appendChild(row);
    }

    return table;
}
window.onload = function() {
    document.getElementById("displayingMonth").innerHTML = months[showDate.getMonth()];
    drawTable(showDate );
};



         function daysInMonth(month, year) {
         var days;
         switch (month) {
           case 1: // Feb, our problem child
           var leapYear = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
           days = leapYear ? 29 : 28;
           break;
           case 3:
           case 5:
           case 8:
           case 10:
           days = 30;
           break;
           default:
           days = 31;
          }
          return days;
        }
var showDate=新日期();
变量月份=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”,
“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
var weeks=[“星期日”、“星期一”、“星期四”、“星期三”、“星期四”、“星期五”、“星期六”];
功能绘图台(forDate){
const daysInMonth=新日期(
forDate.getFullYear(),
forDate.getMonth()+1,
0
).getDate();
施工日期=[
forDate.getFullYear(),
(forDate.getMonth()+1+'').padStart(2,0)
]
。加入(“-”);
const table=document.getElementById(“表”);
table.innerHTML=“”;

对于(让day=1;day查看这条线

textarea.setAttribute("name", "day[]");
实际上,您正在将
day
数组传递给PHP

将您的PHP更改为:

<?php

    if (isset($_POST['submit'])) {
        $error = '';

        $days = $_POST['day'];

        if (is_array($days)){
            foreach ($days as $day) {
                $day = mysqli_real_escape_string($conn, $day);

                echo $day . '<br />';

                if (empty($day)) {
                    echo $error;
                } else {
                    mysqli_query($conn, "INSERT INTO table (day) VALUES ('$day')");
                }
            }
        }

        if (count($error)) {
            print_r($error);
        }
    }

?>
到PHP脚本和设置的顶部

`display_errors = on`
php.ini文件中


希望这有帮助!

您尝试调试代码的内容是什么?我们无法完成所有调试stuff@Pierre我在代码中添加了different error msg以查看问题所在,并发现代码停在这里:“if(empty($day)){echo$error;}”您总是显示错误消息:
echo$error=“day is empty”
。我认为你不想
回显
这个初始化。可能是因为你在
回显它:
回显$error=“day is empty”
!mysqli_query-为什么这样!(不是)谢谢,亚伦!试过了,但还是没用db@Hanna代码已更新。它对我很有用。请尝试看看你现在在数据库中得到了什么值!但是,不幸的是,我得到了数据库中当月的所有值。就像我只点击第4天一样,我得到了数据库中从2018-02-01到2018-02-28的所有值。@Hanna你好吗u允许用户选择插入DB的日期?您可以使用
元素,该元素将包含用户选择的日期/日期。然后该值将传递给PHP,您可以将特定日期插入数据库该行是html格式的,如您之前所建议的:。或者我误解了您的要求离子?
<?php

    if (isset($_POST['submit'])) {
        $error = '';

        $days = $_POST['day'];

        if (is_array($days)){
            foreach ($days as $day) {
                $day = mysqli_real_escape_string($conn, $day);

                echo $day . '<br />';

                if (empty($day)) {
                    echo $error;
                } else {
                    mysqli_query($conn, "INSERT INTO table (day) VALUES ('$day')");
                }
            }
        }

        if (count($error)) {
            print_r($error);
        }
    }

?>
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
`display_errors = on`