如何通过AJAX提交相同名称的文本框值

时间:2013-02-11 10:47:51

标签: php ajax form-submit

我有很多通过jQuery动态添加的文本框。它们都有相同的名字,如......

<input type="text" name="employer" id="employer" />
<input type="text" name="position" id="position" />
<input type="text" name="city" id="city" />

<input type="text" name="employer" id="employer" />
<input type="text" name="position" id="position" />
<input type="text" name="city" id="city" />

so many...

我通过AJAX传递所有文本框值,但它不起作用。我的AJAX代码在下面..

AJAX

$.ajax(
    {
      type: "POST",
      url: $("#cfgRoot").val()+'/accounts/educationInfoPost.php',
      data:
      {
        employer:$("#employer").val().trim(),
        position:$("#position").val().trim(),
        city:$("#city").val().trim()
      }
});

先谢谢

3 个答案:

答案 0 :(得分:3)

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

并将其传递给ajax数据。

<强>代码


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

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

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


$.ajax(
{
    type: "POST",
    url: $("#cfgRoot").val()+'/accounts/educationInfoPost.php',
    data:
    {
        employer:empName,
        position:position,
        city:city
    }
});

还有一件事不要为DOM添加相同的ID。

ID必须是每个DOM的唯一

答案 1 :(得分:1)

如果您为2个输入提供相同的名称,并且具有相同的ID,您认为会发生什么?

如果您有多个输入,您想要它们作为相同的名称,您应该至少给它们相似的名称。

这样的东西
<input type="text" name="employer1" class="employer" />
<input type="text" name="position1" class="position" />
<input type="text" name="city1" class="city" />

或者,您可以将它们提供给数组

<input type="text" name="employer[]" class="employer" />
<input type="text" name="position[]" class="position" />
<input type="text" name="city[]" class="city" />

就通过AJAX发送此数据而言,您可能只想序列化整个表单。当然,这是基于您希望一次性发送所有表单数据的假设。

var serializedForm = $('form').serialize();
$.ajax(
{
    data: serializedForm,
    //rest of the code here
});

答案 2 :(得分:0)

您的字段ID不是唯一的,请尝试使您的ID唯一,并且它应该有效。