Php 如何通过ajax post方法发送多个同名输入字段值

Php 如何通过ajax post方法发送多个同名输入字段值,php,jquery,ajax,Php,Jquery,Ajax,我有两个同名的多个输入字段。我想使用jqueryajaxpost方法从另一个页面发送所有字段的值,但我没有得到所有行的输入字段值。请检查我的代码 Javascript代码 <script type="text/javascript"> function getValue() { $.post("paidamt.php", { paidamt : $('#paidamt').val(), uid : $('#uid').val() },

我有两个同名的多个输入字段。我想使用jqueryajaxpost方法从另一个页面发送所有字段的值,但我没有得到所有行的输入字段值。请检查我的代码

Javascript代码

 <script type="text/javascript">
function getValue()
{
    $.post("paidamt.php",
    {
      paidamt : $('#paidamt').val(),
      uid : $('#uid').val()
    },
      function( data){
        /*alert(data);*/
        $("#divShow").html(data);
    });  
 }
</script>

函数getValue()
{
$.post(“paidamt.php”,
{
paidamt:$('#paidamt').val(),
uid:$('#uid').val()
},
功能(数据){
/*警报(数据)*/
$(“#divShow”).html(数据);
});  
}
Html代码

<div>
<form method="post">
<table border="1">
<tr>
<th>Product</th>
<th>Price</th>
<th>Paid Amount</th>
<th>Check</th>
</tr>
<?php
$sql = mysql_query("SELECT * FROM `tbldemo`");
while ($result = mysql_fetch_array($sql)) {
?>
<tr>
<td><?php echo $result['pname']; ?> </td>
<td><?php echo $result['price']; ?></td>
<td><input type="text" name="paidamt[]" id="paidamt"></td>
<td><input type="checkbox" name="uid[]" id="uid" 
value="<?php echo $result['id']; ?>"></td>
</tr>
<?php }
?>
</table><br>
<input type="button" name="submit" id="submit" 
onclick="getValue(1)" value="Save Amt.">
</form>
</div>
<div id="divShow">
</div>

产品
价格
已付金额
检查

我建议添加类而不是id,因为相同的类可以重复,但id不应该重复

<script type="text/javascript">
function getValue()
{
    var paidamtval = [];
    $('#paidamt').each(function(){
       paidamtval.push($(this).val());
    });
    $.post("paidamt.php",
    {
      paidamt : paidamtval,
      uid : $('#uid').val()
    },
      function( data){
        /*alert(data);*/
        $("#divShow").html(data);
    });  
 }
</script>

函数getValue()
{
var paidamtval=[];
$('#paidamt')。每个(函数(){
paidamtval.push($(this.val());
});
$.post(“paidamt.php”,
{
paidamt:paidamtval,
uid:$('#uid').val()
},
功能(数据){
/*警报(数据)*/
$(“#divShow”).html(数据);
});  
}

由于您将拥有许多这样的功能,id-需要是唯一的,而在您的情况下不是,因此请删除“id=”paidamt“


这是您的第一个错误。其次,不要使用$.post来提交此表单。请删除AJAX提交,或使用类似的方式绑定表单。

尝试使用此方法

var paidamt = $("input[name=paidamt]").map(function(){
return $(this).val();
}).get().join(",");

var uid = $("input[name=uid]").map(function(){
return $(this).val();
}).get().join(",");


$.ajax(
{
type: "POST",
url: 'paidamt.php',
data:
{
    paidamt:paidamt,
    uid:uid
}
});

首先,您为
输入
元素指定了相同的
id
,该id在循环中重复。这将导致HTML无效,您应该将
id
更改为


产品
价格
已付金额
检查
你试试这个代码

$('document').ready(function(){
$('#submit').click(function(){

 jQuery.ajax({
            type: "POST",
            url: "paidamt.php",
            data: new FormData(this),
            contentType: false,       
            cache: false,             
            processData:false,    
            success: function(html){
               try{ 
                 $("#divShow").html(data);
                 }catch (e){
                 alert(JSON.stringify(e));
                 }
             },
                 error : function(e){alert("error "+JSON.stringify(e)); }
        });
        });


        });
在paidamt.php文件中

$paidamt=$_POST['paidamt'];// its can array values
print_r($paidamt);// result display

理想情况下,表单中不应存在具有相同ID的多个控件。您可以使用名称而不是ID。例如-$('input[name=“paidamt”]')。刚刚发现已建议使用它,因此:getting error“TypeError:FormData.constructor的参数1未实现接口HTMLFormElement。”
$('document').ready(function(){
$('#submit').click(function(){

 jQuery.ajax({
            type: "POST",
            url: "paidamt.php",
            data: new FormData(this),
            contentType: false,       
            cache: false,             
            processData:false,    
            success: function(html){
               try{ 
                 $("#divShow").html(data);
                 }catch (e){
                 alert(JSON.stringify(e));
                 }
             },
                 error : function(e){alert("error "+JSON.stringify(e)); }
        });
        });


        });
$paidamt=$_POST['paidamt'];// its can array values
print_r($paidamt);// result display