【问题标题】:POST mulitple inputs in form with jQuery使用 jQuery 在表单中发布多个输入
【发布时间】:2012-06-19 20:42:34
【问题描述】:

我在 HTML 中生成了一些看起来像这样的输入:

<input id='estemated_days' type='text' data-id='717' value='6'>

<select id='elements_grade' data-id='717'>
 <option value='1'></option>
 <option value='2'></option>
 <option value='3'></option>
</select>

<input id='estemated_days' type='text' data-id='718' value='4'>

<select id='elements_grade' data-id='718'>
 <option value='1'></option>
 <option value='2'></option>
 <option value='3'></option>
</select>

当时我生成了大约 10 个,但以两个为例。如何使用 jQuery 将多个输入值发布到外部 PHP 文件?以前我在提交帖子数据时使用过类似的东西(见下面的代码),但这似乎只适用于具有 ID 的单个字段 - 而不是数据库生成的 data-id

//Initiate function when user clicks save
$("#save_courseplan").click(function() {

//Store the values of the fields as variables
var elements_grade = $('#elements_grade').val();
var estemated_days = $('#estemated_days').val();


$.post('../update.php', {

    estemated_days: estemated_days, //This for example will now represent 6
    elements_grade: elements_grade //And this 1

    }, function(data) {
    $('#updatestatus').html(data); //Display what update.php echoes out
 });
});

编辑

好的,我想我不是很清楚。我已经动态创建了inputfields。这些字段有一个 data-id ,它是从 MySQL 数据库中获取的。

数据库如下所示:

+------------+------------+
| scpe_id    | scpe_days  |
+------------+------------+
| 717        | 6          |
+------------+------------+
| 718        | 4          |
+------------+------------+

以前,我已经成功地使用我在此线程中之前发布的 jQuery 代码根据它包含的值更新了单个字段。一个 ID 包含一个值,该值将 $_POST 发送到我的 update.php 文件,然后插入到数据库中。

现在,但是我不能使用 ID,因为我需要一次更新多行,每行都有不同的数据库 ID。

所以我想要的是首先获取data-id 的值,以了解要更新的行,然后获取它持有的值以了解要插入的内容 - 然后对每个&lt;input&gt; 重复。

【问题讨论】:

  • 你试过serialize()的方法吗?
  • @undefined。还不够,他还要给所有的元素一个name属性。如您链接的文档中所述。
  • @gdoron 你是对的,当然。

标签: jquery forms post input


【解决方案1】:
var queryString = $('form').serialize();

完成。

注意事项:

  • 确保所有表单元素都在表单元素内。
  • 所有表单元素都必须具有name 属性。

serialize docs

最终代码可以是:

$.post('../update.php/?' + queryString, function(data) {
    $('#updatestatus').html(data);
});

【讨论】:

  • 告诉他也要在表单标签中输入和选择
  • 您好,感谢您的回答。 serialize 是否只能在表单中使用?因为我实际上并没有在我的输入字段中使用&lt;form&gt;,但是我根据 ID 的值发布数据,正如您在我的 jQuery 代码中看到的那样。也许我应该提到这一点。
  • @大卫。它可以与任何选择器一起使用,它只需获取选择器中的元素并在其中搜索输入。你也可以使用它:$('.common-class-for-all-inputs').serialize()
  • @gdoron 现在似乎发布了多次。很好,序列化是否也适用于隐藏输入?因为我还想发布data-id 的值,以便知道要在我的数据库中更新哪些行...
  • @大卫。我不明白您的评论,并且每条评论都会更改问题,您可以将您的问题编辑为完整的问题吗?当你这样做时通知我。谢谢。
猜你喜欢
  • 2015-03-19
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多