Ajax передает подсказку php - PullRequest
0 голосов
/ 11 июня 2018

Форма динамически создается с помощью цикла PHP и представляет одну строку из БД.Я спрашиваю пользователя о вводе через приглашение, когда он меняет qty, но когда я отправляю его с AJAX в PHP, он пуст.Я предполагаю, что это потому, что скрытый ввод "new_message" заполняется в то же самое время, когда AJAX отправляет значения в PHP-скрипт, поэтому в этот момент он пуст.Для первой сгенерированной строки я получаю сообщение, но не для какой-либо другой строки.

Можете ли вы помочь мне, как передать быстрый ввод в сценарий PHP?

//Update qty on article    
$('.update_qty').on('change', function() {

  var message = prompt("Upišite razlog za izmjenu količine:");
  //e.preventDefault();

  //Get message value
  $('#new_message').val(message);

  var data = $('#form1').serializeArray();

  if (message != "" || message != NULL) {
    $.ajax({
      type: 'POST',
      url: 'update_qty.php',
      data: data,
      success: function(data) {
        alert(data);
      }
    });
  } else {
    alert("Empty");
    e.PreventDefault();
    return false;
  }
});
<tbody>
<?php if (!empty($sales_plan_list)) {
      foreach($sales_plan_list as $sales_key => $sales_value) {
 ?>
<tr class="new">
   <td>
   <a href="view_product_sales.php?id=<?php echo $sales_value['article_id']; ?>">
   <?php echo $sales_value['article_no']; ?>
   </a>
   </td>
   <td><?php echo $sales_value['description']; ?></td>
   <td><?php echo myNumberFormat($sales_value['rrp']); ?></td>
   <td>
   <form name="form1" id="form1" method="POST" action="update_qty.php">
   <input type="text" name="update_qty" class="update_qty" id="qty" value="<?php echo $sales_value['qty'] ?>"><?php echo ' Kom'; ?>
   <input type="hidden" name="article_id" id="article_id" value="<?php echo $sales_value['article_id']; ?>">
   <input type="hidden" name="sales_plan_id" id="sales_plan_id" value="<?php echo $sales_plan_id; ?>">
   <input type="hidden" name="product_mix_id" id="product_mix_id" value="<?php echo $product_mix_id; ?>">
   <input type="hidden" name="new_message" id="new_message" value="">
   </form>
   </td>
   <td>
   <a href="view_product_sales.php?id=<?php echo $sales_value['article_id']; ?>" class="ti-eye" title="Pogledaj"></a> &nbsp;&nbsp;
   <a href="edit_product_sales.php?id=<?php echo $sales_value['article_id']; ?>" class="ti-settings" title="Izmjeni"></a> &nbsp;&nbsp;
   <a href="delete_product_sales.php?id=<?php echo $sales_value['article_id']; ?>$sales_plan_id=<?php echo $sales_plan_id; ?>" class="ti-trash" title="Obriši"></a>
  </td>
   </tr>
   <?php
   }
   }
   ?>                                                                    
   </tbody>

1 Ответ

0 голосов
/ 11 июня 2018

Проблема в том, что у вас есть несколько элементов с одинаковым id.Вы не должны этого делать.Вы проверяете значение в jQuery, а затем отправляете другие данные формы.

Это все просто задание, я не могу его проверить.Но попробуйте изменить id на class и убедитесь, что вы отправляете правильные данные формы.

Например, измените это

<form name="form1" id="form1" method="POST" action="update_qty.php">

на это

<form name="form1" id="form<?= $sales_key; ?>" method="POST" action="update_qty.php">
...