【问题标题】:jQuery form serialization submitted with an extra id使用额外 id 提交的 jQuery 表单序列化
【发布时间】:2011-07-05 10:00:54
【问题描述】:

我有这样的表格:

 <form id="cform">
    <label>folder name:</label>
    <input type="text" name="Folder[name]" />
    <input id="cfolder" type="submit" value="create" />
 </form>

我想用 jQuery ajax 提交表单,所以我有这样的代码:

 $.ajax({
    type: "POST",
    url: "/folder/create",
    data: $('#cform').serialize(),
    success: function(msg){
        //sucess
    }
  });

到目前为止,这一切都很容易,但现在我想提交一个额外的动态 id($id 值可用)以及整个表单。我怎样才能做到这一点?我试过这个:

 data: $('#cform').serialize()+"&Folder[id]="+$id,

但它不起作用,服务器端没有得到 id。对我来说棘手的部分是 Folder[name], Folder[id], 因为服务器端在 php 中接收数据是这样的:

if(isset($_POST['Folder'])){
    //assign data here
}

希望这很清楚,并感谢您的任何建议。

【问题讨论】:

  • 您可能只是缺少+ 吗? +"&amp;Folder[id]=" + $id? $id 是什么?
  • 对不起,我只是错过了这里,它已更新。

标签: jquery forms


【解决方案1】:

作为替代建议:

您可以使用.serializeArray [docs]$.param [docs]。然后 jQuery 会处理所有的编码:

var data = $('#cform').serializeArray();
data.push({name: "Folder[id]", value: $id});

// later

data: $.param(data);

我不明白你是否对$_POST['Folder'] 有问题,但是如果你在末尾使用带括号的名称,PHP 会将数据解析为数组。

因此您可以使用$_POST['Folder']['name']$_POST['Folder']['id'] 访问数据。

欲了解更多信息,请查看Variables From External Sources

【讨论】:

  • @bingjie2680:var_dump($_POST)给你什么?您确定数据发送吗?或者,也许您以错误的方式访问它? $id 是否包含值?
  • 嗨,Flelix kling,我尝试了 var_damp($_post),似乎我得到了 id..让我再试一次。我会回来
  • @bingjie2680:我是这么认为的 ;) 你只需要以正确的方式访问它:$_POST['Folder']['id']
【解决方案2】:

这样发送数据怎么样 -

data: $('#cform').serialize()+"&FolderId=" + $id

然后尝试在后端检查$_POST['FolderId']

jsfiddle 上的 example

【讨论】:

  • 它不起作用,我想我们可以使用 &FolderId 代替 &Folder[id]
  • @bingjie2680:你这是什么意思?你有什么问题?
  • @bingjie2680:我不明白。像Folder[name] 这样的名称将使PHP 将数据解析为一个数组。然后可以通过$_POST['Folder']['name'] 获得名称,通过$_POST['Folder']['id'] 获得ID。这通常是使用带括号的名称的意图。
【解决方案3】:

你不用这个

`data: $('#cform').serialize()+"&Folder[id]="+$id,`

要连接,使用这个

data: $('#cform').serialize()+"&Folderid="+$id,

并在 php 文件中通过

获取
if(isset($_POST['Folderid'])){
    //assign data here
}

【讨论】:

    猜你喜欢
    • 2013-02-16
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多