Javascript не получает значения переменных в AJAX МОДАЛЬНОЙ форме - PullRequest
2 голосов
/ 09 апреля 2020

Я новичок в AJAX и следую некоторому руководству по YouTube, но я застрял в некоторых вещах. Поэтому я просто изменил некоторые вещи здесь и скорректировал их, исходя из своего понимания.

Эта кнопка получит идентификатор проекта, который пользователь хочет утвердить в таблице:

<button type="submit" name="approve" id="<?php echo $displayapprovaldetails['projectid'];?>" class="btn btn-primary btn-sm approve_data">Approve</button>

Теперь я есть эта модальная форма, которая будет запрашивать замечания в первую очередь перед утверждением и обновлением записей, связанных с проектом:

<div class="modal fade" id="approve_data_Modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title font-weight-bold text-primary" id="exampleModalLabel">Approve</h5>
          <button class="close" type="button" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">×</span>
          </button>
        </div>
        <form method="post">
        <div class="modal-body">
            <label>Remarks: </label>
            <textarea name="remarks" id="remarks" rows="5" class="form-control"></textarea>
        </div>
        <div class="modal-footer">
          <button class="btn btn-secondary" type="button" data-dismiss="modal">Close</button>
          <button class="btn btn-primary" type="submit" name="approve" id="approve">Confirm</button>
          </form>
        </div>
      </div>
    </div>

Я изменил скрипт, чтобы получить переменные для обеих вложенных функций, но он все еще не работает. Я не уверен, что мой сценарий также правильный.

Сценарий:

<script>
$(document).ready(function(){

  $(document).on('click', '.approve_data', function(){
     var projectid = $(this).attr("projectid");

     $('#approve_data_Modal').modal('show');
     $(document).on('click', '#approve', function(){
      var remarks = $("#remarks").val();
      var projectid = $projectid;

      if(remarks=="")
      {
        $("#lblRemarks").html("What do you want to say?");
      }

     $.ajax({
        url:"include/approve.php",
        type:"post",
        data:{projectid:projectid, remarks:remarks},
        success:function(data){
          $("#approve_data_Modal").modal('hide');
          }
        });
     });
  });
});
</script>

Может ли кто-нибудь помочь мне определить, что не так с моим сценарием и как я мог исправить его, чтобы получить два переменные ($ projectid и $ remarks)?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Я уже решил это. Это просто вызов функции и объявление переменных.

0 голосов
/ 09 апреля 2020

вместо кнопки =

<button type="submit" name="approve" id="<?php echo $displayapprovaldetails['projectid'];?>" data-toggle="modal" data-target="#approve_data_Modal" class="btn btn-primary btn-sm">Approve</button>

Использовать ввод =

<input type='text' id="project_id" value="<?=$displayapprovaldetails['projectid']?>" >

вы также можете использовать кнопку для отправки, но когда дело доходит до отправки идентификатора в другой файл, я рекомендую вам это

Ваш HTML:

<div class="modal fade" id="approve_data_Modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title font-weight-bold text-primary" id="exampleModalLabel">Approve</h5>
          <button class="close" type="button" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">×</span>
          </button>
        </div>
        <form method="post" id="approve_form">
        <div class="modal-body">
            <label>Remarks: </label>
            <textarea name="remarks" id="remarks" rows="5" class="form-control"></textarea>
        </div>
        <div class="modal-footer">
          <button class="btn btn-secondary" type="button" data-dismiss="modal">Close</button>
          <button class="btn btn-primary" type="submit" name="approve" id="approve">Confirm</button>
          </form>
        </div>
      </div>
    </div>

И вот ваш файл сценария:

    <script>
    $(document).ready(function(){
      $('#approve').on('submit', function(event){
            event.preventDefault();
 var id = $("#project_id").val();
            if($('#remarks').val() == "")
            {
              alert("Remark is required.");
            }
            else
            {
              $.ajax({
                url:"include/approve.php",
                method:"post",
                data:{id:id},
                success: function(data)
                {
                  $('#approve_form')[0].reset();
                  $('#approve_data_Modal').modal('hide');
                }
              });
            }
        });
    });
    </script>
...