如何使用Ajax将数据从动态添加的表单发送到php

时间:2018-07-05 14:58:02

标签: php jquery ajax mysqli

我创建了一个动态表单,该表单具有来自MySQL数据库的数据,并且效果很好。问题是,我不知道如何获取Ajax来阅读表格。

假定下面的代码是一种形式:

<form>
    <!-- input type content here -->
</form>

等效的ajax代码为:

$(document).ready(function(

    $.ajax({
        url: 'url',
        data: $("#frm").serialize();
       //insert more code...
});

))

如果这样动态添加我的表单怎么办:

<?php while($row = $result->fetch_assoc()){
    <!-- insert code for dynamic grid see sample link [here][1]  
    <form>
       <input type="radio" name="rate" value="1">
       <input type="radio" name="rate" value="2">
       <input type="radio" name="rate" value="3">

       <input type="text" name="name" value="<?php echo $row['p_name']?>"
       <input type="text" name="price" value="<?php echo $row['p_price']?>"
    </form>

}?>

如果我的表单是动态创建的,我将如何获取这些数据?我是否还必须在表单中添加一个数组符号,例如<form name="myFrm[]"?如果是这样,我什至将其称为ajax?

2 个答案:

答案 0 :(得分:1)

请尝试以下解决方案。

使用自动增量变量动态设置表单ID。

<?php $i=1; while($row = $result->fetch_assoc()){
<!-- insert code for dynamic grid see sample link [here][1]  
<form id="frm<?php echo $i;?>">
   <input type="radio" name="rate" value="1">
   <input type="radio" name="rate" value="2">
   <input type="radio" name="rate" value="3">

   <input type="text" name="name" value="<?php echo $row['p_name']?>">
   <input type="text" name="price" value="<?php echo $row['p_price']?>">
  <input type="button" name="button" value="click" class="common_submit_btn">
</form>
$i++; 
}?>

下面的JavaScript代码用于在ajax中获取动态表单ID。

$(document).ready(function(
  $(".common_submit_btn").click(function(){
  //here you can get submitted form data in console.
  console.log($('#'+$(this).closest('form').attr('id')).serialize());
  $.ajax({
    url: 'url',
    data: $('#'+$(this).closest('form').attr('id')).serialize(),
   //insert more code...
 });
});
});

答案 1 :(得分:0)

当前您的JavaScript说:

  • 文档准备就绪后:
    • 使用表格

因此,在用户甚至没有输入数据之前,您就已经运行过$.ajax命令,您可能想用某种事件侦听器将其包装起来,例如更改,或者添加一个提交按钮并提交数据。