【问题标题】:Is there any way to load dynamic data in dynamic form using SQL PHP JS?有没有办法使用 SQL PHP JS 以动态形式加载动态数据?
【发布时间】:2020-09-01 16:53:35
【问题描述】:

我尝试从 SQL 动态加载表单。我成功加载了表格。但在表单内部,有一个选项可以选择一个类别,该类别将从中动态加载。但我未能将其加载到表单中。

患者和类别完全分开的表格

HTML:

   <tbody>
       <?php
          foreach ($patients as $patient) {

             echo "<tr>";
             echo "<td>" . $patient["id"] . "</td>";
             echo "<td>" . $patient["full_name"] . "</td>";
             echo "<td >" . $patient["phone"] . "</td>";
             echo "<td>" . $patient["email"] . "</td>";
             echo "<td>" . $patient["service"]  . "</td>";
             echo "<td>";
             echo "<button type='button' class='btn btn-outline-primary editPatient_btn' id=" . $patient["id"] . ">Edit</button>";
             echo "</td>";
             echo "</tr>";
             } ?>
   </tbody>



<form action="" method="post">
      <div class="patient_details">
      </div>
    <div class="modal-footer">
     <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
     <button type="submit" name="admin_patient_edit" class="btn btn-primary">Edit</button>
    </div>
  </form>

AJAX JS:

$(document).ready(function() {
        $(".editPatient_btn").click(function() {
            var patient_id = $(this).attr("id");
            $.ajax({
                url: "../../controller/Controller.php",
                method: "post",
                data: {
                    patient_id: patient_id,
                },
                success: function(data) {
                    //console.log(patient_id);
                    $('.patient_details').html(data);
                    $("#exampleEditModalLongpatient").modal("show");
                }
            });
        });
    });

PHP:

if (isset($_POST["patient_id"])) {
    $output = '';
    editPatient($_POST["patient_id"]);
}

function editPatient($patient_id)
{
    $query = "SELECT * FROM user WHERE id='$patient_id'";
    $patient_details = getArray($query);
    $output = '
    <input type="hidden" name="id" value="' . $patient_details["id"] . '">
    <input class="form-control form-control-lg" id="edit_name" type="text" name="name" value="' . $patient_details["full_name"] . '" placeholder="Patient Name" required>
    <br>
    <input class="form-control form-control-lg" id="edit_mail" type="email" name="email" value="' . $patient_details["email"] . '" placeholder="Email Address" required>
    <br>
    <input class="form-control form-control-lg" id="edit_tel" type="tel" name="tel" value="' . $patient_details["phone"] . '" placeholder="Phone Number" required>
    <br> 
<select class="form-control patient_category_selector" name="patient_category" value="' . $patient_details["category"] . '" id="doctor_category_selector" required>
    <option value="" disabled selected>Select Category</option>
     <?php
    foreach ($categories as $category) {
        if($category["category_name"]==' . $patient_details["category"] . '){
            echo "<option selected>" . $category["category_name"] . "</option>";
       }
        else{
        echo "<option>" . $category["category_name"] . "</option>";
        }
    }
    ?>
</select>      
    ';
    echo $output;
}

所以我想在选择器中加载类别作为名称、电子邮件和电话。那么,有没有办法在选项中动态加载该类别?

【问题讨论】:

  • foreach 不应该是字符串的一部分。

标签: javascript php mysql ajax


【解决方案1】:

问题解决了。我以前没有使用数据类型 json。 JSON是在动态表单[多动态数据]中显示动态值的解决方案。

脚本应该如下所示-

AJAX JS:

 $(document).ready(function() {
        $(".editPatient_btn").click(function() {
            var patient_id = $(this).attr("id");
            $.ajax({
                url: "../../controller/Controller.php",
                method: "post",
                dataType: "json",
                data: {
                    patient_id: patient_id,
                },
                success: function(data) {
                    $('#patient_id').val(data.id);
                    $('#edit_name').val(data.full_name);
                    $('#edit_mail').val(data.email);
                    $('#edit_tel').val(data.phone);
                    $('#edit_patient_category').val(data.category);
                    $("#exampleEditModalLongpatient").modal("show");

                }
            });
        });
    });

HTML:

    <form action="" method="post">
                                <div class="patient_details">
                                    <input type="hidden" name="id" id="patient_id" value="">
                                    <input class="form-control form-control-lg" id="edit_name" type="text" name="name" value="" placeholder="Patient Name" required>
                                    <br>
                                    <input class="form-control form-control-lg" id="edit_mail" type="email" name="email" value="" placeholder="Email Address" required>
                                    <br>
                                    <input class="form-control form-control-lg" id="edit_tel" type="tel" name="tel" value="" placeholder="Phone Number" required>
                                    <br>
<select class="form-control patient_category_selector" name="patient_category" id="edit_patient_category" value="" id="doctor_category_selector" required>
    <option value="" disabled selected>Select Category</option>
     <?php
    foreach ($categories as $category) {
        if($category["category_name"]==' . $patient_details["category"] . '){
            echo "<option selected>" . $category["category_name"] . "</option>";
       }
        else{
        echo "<option>" . $category["category_name"] . "</option>";
        }
    }
                                </div>
                                <div class="modal-footer">
                                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                                    <button type="submit" name="admin_patient_edit" class="btn btn-primary">Edit</button>
                                </div>
                            </form>

PHP 应如下所示:

if (isset($_POST["patient_id"])) {
    $output = '';
    editPatient($_POST["patient_id"]);
}
function editPatient($patient_id)
{
    $query = "SELECT * FROM user WHERE id='$patient_id'";
    $patient_details = getArray($query);

    echo json_encode($patient_details);
}

【讨论】:

    猜你喜欢
    • 2012-05-23
    • 1970-01-01
    • 2021-10-22
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2021-05-24
    相关资源
    最近更新 更多