使用 jquery 调用 cakephp 动作并将数组作为参数传递
Posted
技术标签:
【中文标题】使用 jquery 调用 cakephp 动作并将数组作为参数传递【英文标题】:Call cakephp action with jquery and pass an array as a parameter 【发布时间】:2014-07-28 17:31:04 【问题描述】:我试图弄清楚如何将我在 jquery 中的数组传递给 cakephp 操作,以对数据库中的一些数据进行处理。
我不是 cakephp 的首席开发人员,我只是想弄清楚。
这是一个场景,我们已经建立了一个 CMS,其中有一个包含页面的部分。我希望能够在该列表中拖动和重新排序项目,然后将其保留回数据库。我为此使用了 jQuery 的 UI 可排序方法,它的工作原理就像一个魅力。
var sortArray;
$( ".sitePages tbody" ).sortable(
placeholder: "sortable-highlight",
opacity: 0.85,
axis: 'y',
handle: '.drag',
update: function()
sortArray = $('.sitePages tbody').sortable('toArray');
);
返回和数组看起来像这样......
["53c6a933-1aa4-4228-979b-0caa72b40463", "53c6aa4c-ddd0-49ae-b8d7-0d3e72b40463", "53c690d1-51cc-4f08-bba0-061a72b40463",...]
我的控制器中有一个我想触发的操作,它将负责基本上获取这些项目中的每一个,并更新数据库中的该行,特别是当我点击时将“订单”列加 1 加上它的索引保存按钮。
我对如何让它发挥作用有点困惑。我已经看到我可以通过导航到 url 来调用 cakephp 操作,但我不确定如何将数组传递给它,序列化似乎弄乱了我的数组,并且 url 字符串看起来根本不正确。
【问题讨论】:
【参考方案1】:使用 AJAX,您可以通过调用方法 (URL)(您想用来解析和存储数据的控制器/方法的)作为 ajax 调用的收件人 URL,将结果集返回给控制器。一旦数据在您的方法中,您就可以使用常规 php 来解析和保存。
【讨论】:
所以我能够让一个序列化的数组工作,现在我将它发送到控制器并像$.post("http://"+ document.domain +"/site_pages/change_order_2/"+sortArray);
这样的动作现在在我的模型中,我试图弄清楚如何得到它为了保存在 cakephp 中,我在想像 saveMany 这样的东西会起作用,但我不太明白它是如何工作的,这也是我如何将查询参数转换回数组parse_str($params, $output);
我希望这是对的,我发现它在某个地方的***上。
你的序列化数组看起来像你想要的那样吗?在您的模型中,您应该能够只遍历您的数组并随时更新数据库。此链接也可能有助于阐明:***.com/questions/1392078/…
我想我只是被困在如何确保我在 cakephp 中正确使用 foreach。我正在发布这样的数据$.ajax( type: 'POST', url: '/lifepark/admin/site_pages/change_order?'+sortArray, success: function() alert('success'); );
,查询看起来像这样id[]=53c6a933-1aa4-4228-979b-0caa72b40463&id[]=53c6aa4c-ddd0-49ae-b8d7-0d3e72b40463...
。我只是不确定如何在 cakephp 中循环数据,这就是我卡住的地方。
我想我只需要等待我的 cakephp 人来帮助我,因为它看起来对我们如何设置系统非常具体。感谢您尝试帮助我。以上是关于使用 jquery 调用 cakephp 动作并将数组作为参数传递的主要内容,如果未能解决你的问题,请参考以下文章