JQuery — Ajax передать приглашение ввода в переполнение стека

Форма динамически создается с помощью цикла 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>

0

Решение

Проблема в том, что у вас есть несколько элементов с одинаковыми 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">
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]