PHP MYSQL AJAX обновление в реальном времени - PullRequest
0 голосов
/ 26 ноября 2018

скриншоты структуры базы данных и страниц только что добавили ссылку на изображения ..

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

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

У меня возникла проблема с автоматическим удержаниемзначение в моем поле initialcount при вводе некоторых определенных значений в поля pullout и currentcount и создание столбца SOLD ..

я пытаюсь добиться того, чтобы пользователь вводил некоторые значения в указанные поля (pulloutи currentcount), продаваемое поле должно автоматически генерироваться на основе того, какое число набрал пользователь, формула, которую я планирую использовать, выглядит следующим образом:

currentcount = initialcount - pullout - sold ..

так, чтобы объяснить это словами, значение столбца currentcount было бы начальным счетом минус извлеченный минус проданный ..

но, тем не менее, пользователь может заполнять только строки forpullout, badorder, pullout и currentcount для поддержания целостности системы ... и я присоединился к 3 таблицам базы данных для этой фиктивной системы инвентаризации, а именно: список продуктов, запасы и инвентарь,и окончательные значения моей таблицы инвентаризации должны быть сохранены в моей таблице базы данных инвентаризации после нажатия кнопки, которую я еще не добавил .. У меня в настоящее время есть следующие соответствующие коды ..

, в то время как у меня есть ссылка дляфотографии, которые я сделал, чтобы наглядно объяснить, что у меня есть и чего я пытаюсь достичь ..

поле initialcount получает свою запись из моей базы данных акций, поэтому запасы базы данных постоянно обновляются ..

ипосле нажатия кнопки «Сохранить инвентарь» (которую я еще не добавил) значения из всего текущего столбца столбца должны быть перенесены в исходный счет столбца.

это похоже на процесс обрезки текущего столбца и вставки егок столбцу initialcount для следующего инвентаря ..

и это то, что у меня есть до сих пор ..

      <?php
  require_once 'config.php';
  $initialcount = $initialcount ?? '';
  $forpullout = $forpullout ?? '';
  $badorder = $badorder ?? '';
  $pulledout = $pulledout ?? '';
  $sold = $sold ?? '';
  $currentcount = $currentcount ?? '';
  $grosssale = $grosssale ?? '';

  $sql = "SELECT b.id,b.brand,b.wgtvol,b.unit,b.generic,b.grosssale,i.currentcount,m.initialcount,m.forpullout,m.badorder,m.pulledout,m.sold,m.sales,m.author,m.total FROM (productslist AS b LEFT JOIN stocks AS i ON b.id=i.id AND i.entryid=(SELECT MAX(entryid) FROM stocks WHERE id=b.id)) LEFT JOIN inventory AS m ON m.id=b.id";
      if($result = mysqli_query($link, $sql)){
    if(mysqli_num_rows($result) > 0){
  echo "<table style='background: #FAFAFA;' class='table table-striped'>";
  echo "<thead>";
  echo "<tr>";
  echo "<th class='hidden'>Product ID</th>";
  echo '<th class="m1-center-text head-up dg-bg w-fc product-container"> product </th>';
  echo '<th class="head-up-sm count-container xdg-bg w-fc m1-center-text"> initial<br>Count </th>';
  echo '<th class="head-up-sm count-container dr-bg w-fc m1-center-text"> for<br>pull<br>out </th>';
  echo '<th class="head-up-sm count-container dr-bg w-fc m1-center-text"> bad<br>order </th>';
  echo '<th class="head-up-sm count-container xdg-bg w-fc m1-center-text"> pulled<br>out</th>';
  echo '<th class="head-up-sm count-container b-bg w-fc m1-center-text product-container"> sold </th>';
  echo '<th class="hidden head-up-sm count-container b-bg w-fc m1-center-text product-container"> gs </th>';
  echo '<th class="head-up-sm count-container rb-bg w-fc m1-center-text product-container"> current<br>count </th>';
  echo '<th class="head-up-sm count-container dg-bg w-fc m1-center-text product-container"> gross<br>sale </th>';
  echo "<th class='hidden-col center-text'>Sell<br>Price</th>";
  echo "<th class='hidden-col center-text'>Gross<br>Sale</th>";
  echo '<th class="hidden-col center-text">Date Added<br>(Year-Month-Day-Time)</th>';
  echo "</tr>";
  echo "</thead>";
  echo "<tbody>";
        while($row = mysqli_fetch_array($result)){
  echo "<tr>";
  echo "<td class='hidden-col'>" . $row['id'] . "</td>";
  echo "<td class='lg-text'> " . $row['brand'] . "-" . $row['wgtvol'] . "" . $row['unit'] . " </td>";
  echo "<td id='initialcount' name='initialcount' class='center-text lg-text'>" . $row['currentcount'] . "</td>";
  echo "<td contenteditable id='forpullout' name='forpullout' class='decimal center-text lg-text'>" . $row['forpullout'] . "</td>";
  echo "<td contenteditable id='badorder' name='badorder' class='decimal center-text lg-text'>" . $row['badorder'] . "</td>";
  echo "<td contenteditable id='pulledout' name='pulledout' class='decimal center-text lg-text'>" . $row['pulledout'] . "</td>";
  echo "<td class='center-text lg-text'>" . $row['sold'] . "</td>";
  echo "<td id='grosssale' name='grosssale' class='hidden center-text lg-text'>" . $row['grosssale'] . "</td>";
  echo "<td contenteditable id='currentcount' name='currentcount' class='decimal 
  center-text lg-text'>" . $row['currentcount'] . "</td>";
  echo "</tr>";
  }
        mysqli_free_result($result);
  } else{
  echo "<p class='lead'><em>No records were found.</em></p>";
  }
  } else{
  echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
  }
  mysqli_close($link);
  ?>
  <?php
  require_once 'config.php';
   if($_SERVER["REQUEST_METHOD"] == "POST"){

   $sql = "INSERT INTO inventory (initialcount, forpullout, badorder, pulledout, sold, currentcount, sellprice, grosssales) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
     if($stmt = mysqli_prepare($link, $sql)){
    mysqli_stmt_bind_param($stmt, "ssssssss", $param_initialcount, $param_forpullout, $param_badorder, $param_pulledout, $param_sold, $param_cfurrentcount, $param_grosssales);
        $param_initialcount = $row_initialcount;
        $param_forpullout = $row_forpullout;
        $param_badorder = $row_badorder;
        $param_pulledout = $row_pulledout;
        $param_sold = $row_sold;
        $param_currentcount = $row_currentcount;
        $param_grosssales = $row_grosssales;
  if(mysqli_stmt_execute($stmt)){
  header("location: index.php");
  exit();
        } else{
            echo "Something went wrong. Please try again later.";
        }
    mysqli_stmt_close($stmt);
  }
  mysqli_close($link);
  }
  ?>
  <script
    src="https://code.jquery.com/jquery-3.3.1.js"
    integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60="
    crossorigin="anonymous"></script>

  </head>
  <body>
  <script>
  $('.decimal').keypress(function(e){
      var valid_keys = '0123456789.';
              function contains(needle, haystack) {
                  return haystack.indexOf(needle) > -1;
   }
        if(!contains(e.key, valid_keys) && e.key.length === 1 || (e.key == '.' && contains('.', $(this).val()))) {
            e.preventDefault();
        } 
  });
  </script>

  <script type="text/javascript">
  $(document).ready(function() {
    $(document).ajaxError(function (e, jqXHR, status, error) {
      console.log('error: ' + error);
    });
    $('#currentcount').on("input", function() {
      var tdVal = $(this).val();
      var hiddenInputElem = $('input[type=hidden]').val();
      if(inputVal.length) {
        $.getJSON("product-current-count.php", {id: hiddenInputElem}, function(data) {
          $('#currentcount').val(data.total = parseInt(inputVal));
        });
   }
  });
  });
  </script>
  </body>
  </html>

пожалуйста, научите меня, как сделать вывод, что я пытаюсь получить.Заранее спасибо.

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