通过POST将输入数组值发送到php

时间:2012-03-12 07:12:20

标签: php javascript jquery post

我正在尝试读取输入数组的值并将它们传递给我的后端PHP,但是我无法使其正常工作。 我有以下html:

<input name='field[]' class='myclass' value='test1'>
<input name='field[]' class='myclass' value='test2'>
<input name='field[]' class='myclass' value='test3'>

<input id='post_this_val' type='button' value='Post'>

我想在jQuery中读取这些值并将值发布到我的后端PHP,然后PHP将处理结果。这就是我的工作:

$('#post_this_val').live('click', function () {
    var inpVal = $('input.myclass').map(function(i, el) {
                            return el.value;
                    });
    $.post('/my/php/function', {data: inpVal});
});

上面的POST不起作用 - 我的php函数甚至没有被调用,页面只是在单击POST按钮时重新加载。建议请。

2 个答案:

答案 0 :(得分:4)

获取表单值的最简单方法是将这些输入包装在表单中,绑定提交事件,并使用.serialize()方法。使用此方法的好处是,如果您有一个带有输入类型文本和提交的表单,无论用户是使用回车提交,还是单击提交按钮,处理程序仍将被调用。

HTML:

<form id="myForm">
   <input  name='field[]' class='myclass' value='test1'>
   <input name='field[]' class='myclass' value='test2'>
   <input name='field[]' class='myclass' value='test3'>
   <input id='post_this_val' type='button' value='Post'>
</form>

JS:

$('#myForm').live('submit', function(e) {
   $.post('/my/php/function', $(this).serialize());
   e.preventDefault();
   return false;
});

答案 1 :(得分:0)

为了增加andreas的好答案,有时,复杂的问题是由最简单的错误引起的。

检查语法和所有内容后,我建议您安装Firebug以检查确切的内容。

在Firebug的网络面板上,您可以看到帖子是否成功以及是否有回复。

在这种情况下,错误可能是从URL到拼写错误的变量拼写不正确的几个方面。

Firebug将帮助识别这些错误,无论原因如何。

希望这有帮助!

祝你好运!