使用JQuery格式化数据以发布到CakePHP控制器
我对Ajax/Jquery有些陌生,所以如果这是一个简单的问题,我很抱歉,但我就是想不出来 我正在使用CakePHP和JQuery 我想通过从HTML页面中拉出“innerHTML”,将链接、标签和描述保存到表中。我似乎无法将数据放在预期的格式中—这是控制器预期的格式 我从html中提取数据,html如下所示:使用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>
<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方法编写代码