Php 用JQuery填充HTML输入数组

Php 用JQuery填充HTML输入数组,php,jquery,html,arrays,Php,Jquery,Html,Arrays,说到JQuery,我是个新手,这是因为我试图学习如何使用它 我定义了一个表单,其中我有一系列输入,如下所示: <input name="Name[]"> 不过,我遇到的问题是,试图用PHP返回的json数据填充这些表单元素。当我尝试使用以下方法设置表单中这些元素的值时: $('[name='+key+']', frm).val(value); 其中(例如)key=Name[0] 我运气不太好,但遇到了一个错误: Uncaught Error: Syntax error, unre

说到JQuery,我是个新手,这是因为我试图学习如何使用它

我定义了一个表单,其中我有一系列输入,如下所示:

<input name="Name[]">
不过,我遇到的问题是,试图用PHP返回的json数据填充这些表单元素。当我尝试使用以下方法设置表单中这些元素的值时:

$('[name='+key+']', frm).val(value);
其中(例如)
key=Name[0]

我运气不太好,但遇到了一个错误:

Uncaught Error: Syntax error, unrecognized expression: [name=Name[0]] 

显然它不喜欢这里的括号?有没有办法以这种方式访问元素?

您需要使用双反斜杠//退出[],它才能工作

$('input[name="Name\\[0\\]"]')
试试这个

key= key.replace(/\[/g, "\\\\[");
key= key.replace(/\]/g, "\\\\]");

$('[name="'+key+'"]', frm).val(value);

只把我的回答当作建议。
您可以使用带有
eq
功能的输入索引/位置来设置值

示例

$('[name="Name[]"]', frm).eq( key ).val( value );

其中key是数组中输入的索引/位置
(即:0,1,2,…)


在这里阅读更多内容

元素的名称在JavaScript中保持为
name[]
,因此jQuery也是如此。仅PHP需要为名称编制索引。jQuery只需返回一个集合(就像该名称没有使用
[]
)即可使用该方法访问每个jQuery对象


var jsonResp=[“你好”,“世界”];
$.each(jsonResp,函数(idx,val){
$('[name=“name[]”].eq(idx).val(val);
});

谢谢!这让我找到了我所需要的。显然我不能接受两个答案。。。尽管他们两个都在现场。。。我不知道谁先回答了…@詹姆斯,没关系,伙计。我很感激你愿意发表评论。:)谢谢你的回复,这正是我所需要的!我无法让它工作,但我感谢您抽出时间回答:)
$('[name="Name[]"]', frm).eq( key ).val( value );
$('[name="Name[]"]:eq('+key+')', frm).val( value );
<input name="Name[]" />
<input name="Name[]" />

var jsonResp = ["hello", "world"];

$.each( jsonResp, function( idx, val ) {
    $( '[name = "Name[]"]' ).eq( idx ).val( val );
});