我想使用jQuery的$ .post()将数据发送到PHP页面,结果为$_POST
,如下所示:
Array
(
[text] => Some String
[numbers] => Array
(
[0] => 9
[1] => 4
)
)
成为numbers
数组的信息是动态生成的,所以我不知道它将包含多少个元素。所以,我必须将这些信息收集到一个JavaScript数组中。
到目前为止我有这个jQuery代码:
$.post("http://some.url/page.php",
{
text: $("#string").val(),
numbers: $("#container input").val() //This is obviously wrong!
}).done(function (result)
{
$("#result").html(result);
});
如何将input
中的#container
元素的值转换为numbers:
点的数组,以获取$_POST
数组中的数组?
编辑: HTML看起来像这样:
<input type="text" name="text" id="text">
<div id="container">
<label id="9"><input type="hidden" value="9">You added no. 9!</label>
<label id="4"><input type="hidden" value="4">You added no. 4!</label>
<!-- These inputs are dynamically added with a whole other function -->
</div>
答案 0 :(得分:6)
您的html输入必须包含以下名称:
name="text"
- &gt;用于“名称”输入
name="numbers[]"
- &gt;两个“数字”输入
所以html:
<form class="form">
<input type="text" name="text" id="text">
<div id="container">
<label id="9"><input name="numbers[]" type="hidden" value="9">You added no. 9!</label>
<label id="4"><input name="numbers[]" type="hidden" value="4">You added no. 4!</label>
<!-- These inputs are dynamically added with a whole other function -->
</div>
<form>
尝试序列化表单输入时:
$.post("http://some.url/page.php",
{
data: $('.form').serialize(),
}).done(function (result)
{
$("#result").html(result);
});
答案 1 :(得分:0)
$ .serialize()是不错的选择。但有时你想传递小集,而不是整个表单输入。 (顺便说一句,我建议使用lodash或下划线库进行过滤)
$ .map()可以是一个选项。
$.post("http://some.url/page.php",
{
text: $("#string").val(),
numbers: $("#container input").map(function() { return $(this).val(); }) // now numbers = [ "9", "4" ]
}).done(function (result)
{
$("#result").html(result);
});
答案 2 :(得分:0)
首先,您需要一个简单的文本字段来发送文本,例如
Set objExcel = CreateObject("GSpreadCOM.Application");
app.MailLogon(Name, ClientIdAndSecret, ScriptId);
对于数组,您需要文本字段数组。您可以像这样声明它并根据需要复制它。
<input type='text' name='text' />
现在,只需使用代码
序列化表单即可发送数据<input type='text' name='numbers[]' />
最终代码将如下所示。
JavaScript / Ajax代码:
var data = $(this).serialize();
HTML代码将如下所示
$(document).ready(function () {
$("#myform").on("submit", function (e) {
e.preventDefault();
var data = $(this).serialize();
$.post("yourdomain.com/action.php", data, function (response) {
/* callback on success */
});
});
});