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