вставка нескольких значений из динамической формы

у меня есть база данных с 2 строками с именами start_time и end_time, хотел вставить значения из моей динамической формы с помощью implode (), но не может вставить значения из следующих входных полей.

Введите описание изображения здесь

база данных

Введите описание изображения здесь

записаться.РНР

<div class="col-xs-4">
    <input type="text" class="form-control" name="starttime[]" placeholder="12:00">
</div>
<div class="col-xs-2">
    <div class="col-md-2"><h5>TO</h5></div>
</div>
<div class="col-xs-4">
    <input type="text" class="form-control" name="endtime[]" placeholder="12:00">
</div>

записаться.РНР

$startTime = implode(",", $_POST['starttime']);
    $endTime = implode(",", $_POST['endtime']);

    if($uname=="")  {
        $error[] = "provide username !";    
    }
    else if($upass=="") {
        $error[] = "provide password !";
    }
    else if(strlen($upass) < 6){
        $error[] = "Password must be atleast 6 characters"; 
    }
    else
    {
        try
        {
            $stmt = $user->runQuery("SELECT last_name FROM users WHERE last_name=:uname");
            $stmt->execute(array(':uname'=>$uname));
            $row=$stmt->fetch(PDO::FETCH_ASSOC);

            if($row['last_name']==$uname) {
                $error[] = "Username already taken !";
            }
            else
            {
                if($user->register($startTime,$endTime)){   
                    $user->redirect('sign-up.php?joined');
                }
            }
        }

класс.пользователь.РНР

public function register($fName,$mName,$uname,$upass,$grdLvl,$subjects,$startTime,$endTime)
    {
        try
        {
            $new_password = password_hash($upass, PASSWORD_DEFAULT);

            $stmt = $this->conn->prepare("INSERT INTO users(first_name,middle_name,last_name,user_pass,grade_lvl,subjects,start_time,end_time) 
                                                       VALUES(:fName,:mName,:uname,:upass,:grdLvl,:subjects,:startTime,:endTime)");

            $stmt->bindparam(":fName", $fName);
            $stmt->bindparam(":mName", $mName);                                  
            $stmt->bindparam(":uname", $uname);
            $stmt->bindparam(":upass", $new_password);      
            $stmt->bindparam(":grdLvl", $grdLvl);   
            $stmt->bindparam(":subjects", $subjects);   
            $stmt->bindparam(":startTime", $startTime); 
            $stmt->bindparam(":endTime", $endTime);                               

            $stmt->execute();   

            return $stmt;   
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }               
    }

местный.js

$("#add-entry").click(function(e){
      console.log("called");
        event.preventDefault();
        $("#items").append('<div class="row">'
            +'<div class="col-xs-4">'
            +'<input type="text" class="form-control" name="starttime[]" placeholder="12:00">'
            +'</div><div class="col-xs-2"><div class="col-md-2"><h5>TO</h5></div></div>'
            +'<div class="col-xs-4">'
            +'<input type="text" class="form-control" name="endtime[]" placeholder="12:00"></div>'
            +'<div class="col-xs-1"><input type="button" value="delete" id="delete-entry"></div></div>');
    });

1 ответ

  1. Если вы свернете поле времени начала, вы получите строку со всеми сроками начала, сцепленными — что не кажется вам нужным.

    Вместо этого следует перебирать массив времени начала и окончания и обрабатывать каждую запись самостоятельно

    for ($i = 0; i < count($_POST['starttime']); $i++) {
        $starttime = $_POST['starttime'];
        $endtime = $_POST['endtime'];
    
        // do something usefull and register user
    }