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

时间:2010-08-25 00:53:07

标签: jquery cakephp

我对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>
...   

我可以解析HTML并获取“链接”,“标签”和“描述”。

但是,当我将数据发布到控制器时,我无法弄清楚如何以预期的格式获取数据。

使用JavaScript(JQuery)将数据提取到变量后,我使用以下JQuery函数发布它:

$.post("/links/save", {link: link, label: label, notes: description});

当数据发布到控制器时,数据的格式为:

(
  [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中的数据,以便它按照控制器的期望发布吗?

2 个答案:

答案 0 :(得分:1)

CakePHP中仍有PHP,因此您只需使用$_POST

虽然坚持使用Cake的数据结构可能更方便,但要自动填充$this->data,您必须格式化这样的数据:

{ data : { ModelName : { link : ..., ... } } }

答案 1 :(得分:0)

你在追求$ this-&gt; params ['form']吗?

http://book.cakephp.org/view/55/The-Parameters-Attribute-params