Не удается отправить данные поля ввода с циклическим вводом из ajax в php

#php #jquery #ajax

Вопрос:

У меня есть два поля ввода с одинаковым именем класса и одинаковыми данными.

Вот мое поле ввода, сгенерированное циклом while

 <tr>
  <td>                                   
  <input onchange="mySubmit(this.form)" class="ot_value" name="ot_value" type="text" value="10">
  <input type="hidden" name="ot_id" class="ot_id" value="1">                                  
 </td>
</tr>
<tr>
  <td>
  <input onchange="mySubmit(this.form)" class="ot_value" name="ot_value" type="text" value="11">
  <input type="hidden" name="ot_id" class="ot_id" value="2">                                  
  </td>
</tr>
 

Я пытался отправить данные с ajax на php, когда пользователь меняет какое-либо значение.

Вот мой jquery

 function mySubmit(theForm) {
    var ot_value= $(".ot_value").val();
    var ot_id= $(".ot_id").val();
    $.ajax({
       type:"post",
         url:"../apis/update_ot.php",
         data: "ot_value="   ot_value  "amp;ot_id="   ot_id,
            success:function(data){   
            alert(data);
       }
        
    });
}
 

Я смог отправлять данные, когда пользователь изменяет какие-либо данные поля ввода. Но проблема в том, что он принимает только данные 1-й строки.

Как я могу получить точные данные о том, что пользователь изменяет в поле ввода.

Ответ №1:

У вас есть jQuery, используйте его

уберите onchange="mySubmit(this.form)" с поля и сделайте

 $(function() {
  $(".ot_value").on("change", function() {
    const ot_value = $(this).val();
    const ot_id = $(this).next(".ot_id").val();
    console.log("about to submit",ot_value,ot_id)
    $.ajax({
      type: "post",
      url: "../apis/update_ot.php",
      data: "ot_value="   ot_value   "amp;ot_id="   ot_id,
      success: function(data) {
        alert(data);
      }
    });
  })
}) 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tbody>

    <tr>
      <td>
        <input class="ot_value" name="ot_value" type="text" value="10">
        <input type="hidden" name="ot_id" class="ot_id" value="1">
      </td>
    </tr>
    <tr>
      <td>
        <input class="ot_value" name="ot_value" type="text" value="11">
        <input type="hidden" name="ot_id" class="ot_id" value="2">
      </td>
    </tr>
  </tbody>
</table> 

Комментарии:

1. босс, это показывает мне, что ошибка ссылки: mySubmit не определена

2. более того, если я удалю onchange=»mySubmit(this.form)» из поля ввода, это не вызов php-файла.

3. босс, я отредактировал свой ответ. Я предоставил свои html-данные, которые были сгенерированы во время цикла

4. Та же проблема с боссом после удаления onchange=»mySubmit(this.form)» fr

5. ладно, извини, и это сработало для меня, и ты решил мою другую проблему.