Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JQuery格式化数据以发布到CakePHP控制器_Jquery_Cakephp - Fatal编程技术网

使用JQuery格式化数据以发布到CakePHP控制器

使用JQuery格式化数据以发布到CakePHP控制器,jquery,cakephp,Jquery,Cakephp,我对Ajax/Jquery有些陌生,所以如果这是一个简单的问题,我很抱歉,但我就是想不出来 我正在使用CakePHP和JQuery 我想通过从HTML页面中拉出“innerHTML”,将链接、标签和描述保存到表中。我似乎无法将数据放在预期的格式中—这是控制器预期的格式 我从html中提取数据,html如下所示: <div class="listing"> <ul> <li class="link">www.yahoo.com</li>

我对Ajax/Jquery有些陌生,所以如果这是一个简单的问题,我很抱歉,但我就是想不出来

我正在使用CakePHP和JQuery

我想通过从HTML页面中拉出“innerHTML”,将链接、标签和描述保存到表中。我似乎无法将数据放在预期的格式中—这是控制器预期的格式

我从html中提取数据,html如下所示:

<div class="listing">
 <ul>
   <li class="link">www.yahoo.com</li>
   <li class="label">Yahoo</li>
   <li class="description">This is Yahoo's home page</li>
   </ul>
</div>
...   
{ data : { ModelName : { link : ..., ... } } }
当数据发送到控制器时,数据的格式为:

(
  [form] => Array
  (
    [link] => www.yahoo.com
    [label] => Yahoo
    [description] => This is Yahoo's home page
  )
)
(
  [data] => Array
  (
    [Link] => Array
    (
      [link] => www.yahoo.com
      [label] => Yahoo
      [description] => This is Yahoo's home page
    )
  )
)
控制器期望数据的格式为:

(
  [form] => Array
  (
    [link] => www.yahoo.com
    [label] => Yahoo
    [description] => This is Yahoo's home page
  )
)
(
  [data] => Array
  (
    [Link] => Array
    (
      [link] => www.yahoo.com
      [label] => Yahoo
      [description] => This is Yahoo's home page
    )
  )
)
我知道我可以将数据保持原样,并将其以适当的格式放入控制器中,但这似乎是不必要的


有人能告诉我如何操作JQuery中的数据,使其按照控制器的要求发布吗?

您要的是$this->params['form']吗


CakePHP中仍然有PHP,因此您可以简单地使用
$\u POST

不过,坚持使用Cake的数据结构可能更方便,因此要自动填充
$this->data
,您必须按如下方式格式化数据:

<div class="listing">
 <ul>
   <li class="link">www.yahoo.com</li>
   <li class="label">Yahoo</li>
   <li class="description">This is Yahoo's home page</li>
   </ul>
</div>
...   
{ data : { ModelName : { link : ..., ... } } }

这更多的是我想要的,但是没有用。当我尝试这种格式时,我看到[object]是发布的数据。有什么建议吗?@andy啊,对不起,我不太清楚jQuery是如何序列化这些内容的。不确定像
$.serializeArray()
这样的函数是否有用。最糟糕的情况是,您应该能够像这样构造正确的格式:
{'data[Model][link]:…,…}
谢谢。$this->params['form']可以工作,尽管我的“save”函数主要使用$this->data变量。仅供参考-我有一个标准的“保存”表单,允许用户手动输入数据。我还有另一种保存数据的方法,所以我不想专门为这种ajax方法编写代码