Как передать данные обратно из формы, которая ранее называлась AJAX? - PullRequest
0 голосов
/ 13 декабря 2018

Итак, я пытаюсь закодировать кнопку, которая вызывает модал, текст которого был вызван AJAX из другого php-файла.Дело в том, что в модальном режиме есть входные данные, и мне нужно передать входное значение в исходный URL, чтобы его можно было отправлять вместе с другими переменными, когда пользователь нажимает кнопку ОК в модальном режиме.

Я пыталсякод ниже и все вызовы AJAX работают, однако входная переменная (selected_shares) проходит пусто.Буду очень признателен за вашу помощь.

ASSETS_TABLE.PHP

    <?php
    $userLoggedIn = $_SESSION['username'];
    $compe = $_SESSION["comp"];
    $selected_shares = $_GET["selected_shares"];
    ?>

    <table>              
        <tbody>

          <?php

            $assets_query = mysqli_query($con1, "SELECT * FROM assets WHERE username='$userLoggedIn' AND competition='$compe'");
            $assets_query_r = mysqli_fetch_array($assets_query);

                foreach($assets_query as $assets_query_r) {
                                                          ?>

                      <tr>
                      <td><?= $assets_query_r['Item'] ?></td>
                      <td><button id="<?= $assets_query_r['Item'] ?>" data-toggle = "modal" data-target = "#myModal5" onclick="showDetails(this)">
                      </button></td>
                      </tr>

                      <?php
                       } ?>

                      </tbody>
                      </table>


    <!-- Modal -->
    <div class = "modal fade" id = "myModal5" tabindex = "-1" role = "dialog"
   aria-labelledby = "myModalLabel" aria-hidden = "true" data-backdrop="false" style="" >

   <div class = "modal-dialog">
      <div class = "modal-content">

         <div class = "modal-header">
           <h4 class = "modal-title" id = "myModalLabel">
              Sale order
           </h4>


            <button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true" style="background-color: transparent; margin-top: -20px; float: right; color: #4d4646; width: 10px; height: 10px;">
                  &times;
            </button>


         </div>

         <div class = "modal-body">
            <p><span id="value5" style="color:black;"></span></p>
         </div>
         <div class = "modal-footer">
                     <button type = "button" id="modal_yes_btn5" class = "btn btn-primary" style="width: 80px; height: 40px;" onclick="yesBtnFunction5()">
                        Ok
                     </button>

                     <button type = "button" class = "btn btn-default" data-dismiss = "modal" id="modal_no_btn5" style="width: 80px; height: 40px;" onclick="noBtnFunction()">
                        Close
                     </button>


                  </div>

               </div><!-- /.modal-content -->
            </div><!-- /.modal-dialog -->



</div>
    <!-- /.modal -->

    <script>

    function showDetails(button) {

    window.name = button.id;
    var username = "<?php echo $userLoggedIn; ?>";
    var competition = "<?php echo $compe; ?>";

      $.get('customer.php', {"name": name, "username": username, "competition": competition}, function(data){ $("#value5").html(data); $("#modal_yes_btn5").prop('disabled', false);}, 'html' );

    }

    function yesBtnFunction(){

      var username = "<?php echo $userLoggedIn; ?>";
      var competition = "<?php echo $compe; ?>";
      var selected_shares = "<?php echo $selected_shares; ?>";

      $.ajax({
      url: "data_loader.php",
      method: "GET",
      data: {"username": username, "competition": competition, "selected_shares": selected_shares},
      success:

      function(response){
        $("#value5").text(response);
        $("#modal_yes_btn5").prop('disabled', true);
      }
      });
      }
     </script>

CUSTOMER.PHP

<?php
  $name = $_GET["name"];
  $username = $_GET["username"];
  $competition = $_GET["competition"];

  echo "Data: " . $name . $username . $competition . " Now type a number:";
    ?>
  <br>
  <input id="numberinput" type="text" style="width:100px; "value="0"> </input>

  <script>

      $('#numberinput').on("input paste keyup", function( event ) {

          selected_shares = $(this).val();
          var selected_shares = selected_shares;

          $.ajax({
          url: "assets_table.php",
          method: "GET",
          data: {"selected_shares": selected_shares},
          success: function(response){
             $('#myModal5').on('shown.bs.modal', showDetails); 
          }
          });

    }

      </script>

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Хорошо, думаю, я исправил, используя вместо этого код:

$.get('customer.php', {"name": name, "username": username, "competition": competition}, function(data){ $("#value5").html(data); $("#modal_yes_btn5").prop('disabled', false); return selected_shares; var selected_shares = selected_shares;}, 'html' );
0 голосов
/ 13 декабря 2018

Я не смог найти элемент #value5 в вашем HTML, и я думаю, что вы пытаетесь кодировать на JavaScript с помощью PHP.

Javascript работает на стороне клиента, поэтому вам нужно подуматьв потоке браузера.Если вы хотите загрузить модальное содержимое с другой страницы, процесс должен выглядеть следующим образом:

<div id="my-modal"> nothing </div>

И чем:

<script>
  $.get('somewhere', function(c) {
     //At this point you`re creating new HTML on the browser
     //And after that you can bind events on the new elements created
     $('#my-modal').html(c); 
     $("#my-button-returned-from-ajax").on('click', doSomething);
  }, 'HTML')
</script>

Это небольшой фрагмент того, что вы хотите сделать,это не единственный и даже не лучший способ сделать это.

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