Как передать значение раскрывающегося меню в Ajax JsonList, чтобы сохранить значения в базе данных? - PullRequest
0 голосов
/ 25 марта 2020

Я хочу передать раскрывающееся значение в JsonList и сохранить его в БД. Json список сначала отправляется в файл контроллера, а затем вызывается соответствующая модель и класс. Работает, когда тип ввода текста. Но не работает, когда это выпадающий список. Ниже приведены мои коды.

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
        <meta name="description" content="Psychlarity">
        <!--<link rel="shortcut icon" href="../images/favicon.png" type="image/png">-->

        <title>Psychlarity</title>
    </head>

    <body>

           <form method="POST" id="add_article_station"  data-toggle="validator">
                    <div class="panel-heading">
                      <h4 class="panel-title"><i aria-hidden="true" class=""></i>Add New Question </h4>
                            <p>Use this form to add a new question to the system</p>
                                </div>
                                <div class="panel-body">
                                 <div class="row">
            <div class="form-group col-md-4">

        <label>Age Category <span class="text-danger"></span></label>

     <select name="age" id="age" class="select-css" >

    <option disabled="disabled" selected="selected" >Select Age Category</option>

      <option value="t">Teen</option>
      <option value="a">Adult</option>
      <option value="e">Elder</option>
      <option value="">Any</option>

     </select>
   </div>

    <div class="row">
            <div class="form-group col-md-4">

        <label>Relationship Status Category <span class="text-danger"></span></label>

     <select name="RS" id="RS" class="select-css" >

     <option disabled="disabled" selected="selected">Select Relationship Status Category</option>
      <option value="m">Married</option>
      <option value="n">Single</option>
      <option value="">Any</option>

     </select>
          </div>
                                </div>

                                <div class="row">
            <div class="form-group col-md-4">

        <label>Employement Status Category <span class="text-danger"></span></label>

     <select name="ES" id="ES" class="select-css" >

    <option disabled="disabled" selected="selected" >Select Employement Status Category</option>

      <option value="e">Employed</option>
      <option value="s">Student</option>
      <option value="u">Unemployed</option>
      <option value="">Any</option>



     </select>

                                                </div>

                                </div>  <br> <br>   
                                <div class="row pull-right">
                                    <div class="col-md-12">
               <button class="btn btn-success btn-quirk btn-wide mr5">Submit</button>
              <button class="btn btn-quirk btn-wide btn-default" type="reset">Reset</button>
                                    </div>
                                </div>   
</div></div></div></div></div></div></form></div></section>


        <script> 

         $("#add_article_station").validator().on('submit', function (event) {
                if (!event.isDefaultPrevented()) {
                    var formData = new FormData($('#add_article_station')[0]);
                    console.log(formData);
                    $.ajax({
                        url: "../../Controller/AddquestionController.php",
                        type: 'POST',
                        data: formData,
                        async: false,
                        success: function (data) {
                            try {
                                var json = JSON.parse(data)
                                if (json.code == 200) {
                                    window.location = "?msg=suc";
//                                alert(json.message);
                                } else {
                                    window.location = "?msg=err";
                                }
                            } catch (e) {
                                window.location = "?msg=err";
                            }

                        }, error: function (data) {
                            toastr.error("Error In Saving");
                        },
                        cache: false,
                        contentType: false,
                        processData: false
                    });
                }
                return false;
            });

            $(document).ready(function () {

                'use strict';
                function getParam(name) {
                    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
                    if (results == null) {
                        return null;
                    } else {
                        return results[1] || 0;
                    }
                }

                $(function () {
                    if (getParam("msg") == "suc") {
                        toastr.success("Sucssfully saved.");
                    } else if (getParam("msg") == "err") {
                        toastr.success("Question saved.");
                    }
                });



        </script>
 <?php include '../includes/notificationJS.php'; ?>
    </body>
</html>

Ниже приведена моя модель, где запрос БД.

public static function Addquestion($article, $logedUser) {
        if (TokenValidationModelClass::TokenValidate($logedUser)) {
            $dbh = dbconnect::Connection();
            $addquestionStmtStmt = $dbh->prepare("INSERT INTO questions
                                                (age_cat,employment_status,relationship_status)
                                                VALUES
                                                (:age_cat,:employment_status,:relationship_status);  ");

            $addquestionStmtStmt->bindParam(':age_cat', $article->age);
            $addquestionStmtStmt->bindParam(':employment_status', $article->es);
            $addquestionStmtStmt->bindParam(':relationship_status', $article->rs);


            if ($addquestionStmtStmt->execute()) {

                return HttpStatusMessageRest::getHttpStatusMessage(200);
            }
        }
        return HttpStatusMessageRest::getHttpStatusMessage(401);
    }

Если кому-то нужно, ниже приведен файл контроллера.

<?php
include '../Model/session_include.php';
require_once("../Model/articleModelClass.php");

if ($_SERVER['REQUEST_METHOD'] == 'POST') {


    $data = (object) $_POST;
//    print_r($data);

    if (!empty($data)) {
        if (!empty($data->token)) {
            echo articleModelClass::Addquestion($data, $data->token);
        } else {
            $token = (object) $_SESSION;
//            print_r($token);
            echo articleModelClass::Addquestion($data, $token);
        }
    } else {
        $error["error"] = "Empty field.";
        echo json_encode($error);
    }

}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...