【问题标题】:CakePHP Friendsofcake search ajax resultsCakePHP Friendsofcake 搜索 ajax 结果
【发布时间】:2017-03-11 09:39:47
【问题描述】:

对不起,如果我在这里遗漏了一些简单的东西。我正在使用 CakePHP 3 和 Friendsofcake Search 插件并尝试使用 AJAX 加载我的结果。我不确定要为 URL 设置什么 - 我的理解是 FormHelper url 和 AJAX url 必须与 SecurityComponent 匹配。但是,即使禁用了该功能,我也无法提交表单。任何帮助表示赞赏。该插件工作正常,我可以使用 AJAX 提交其他表单就好了 - 我怀疑我在这里遗漏了一些东西(或者这是不可能的 - 我是一个初级程序员)

<?php
 $formUrl='//'.$_SERVER['HTTP_HOST'].Router::url(['controller'=>'Treasures','action'=>'frontIndex']);
echo $this->Form->create('Treasure',['id'=>'myForm','url'=>$formUrl]);
echo $this->Form->input('q');
... (Form submit, end, etc.)
?>

 <script>
$( "#myForm" ).submit(function( event ) {
   event.preventDefault();
    $.ajax({
    async:true,
    data:$(this).serialize(),
    dataType:"html",
    success:function (data, textStatus) {
       $(".ajax-result").html(data);
    },
    type:"POST",
    url:"<?=$formUrl?>"
   });
 </script>

<div class="ajax-result"></div>

谁能告诉我应该为 $formUrl 设置什么?目前,我正在使用的控制器操作成功地使用搜索插件过滤数据,并且我已经专门用于在请求时返回 AJAX 结果的视图 - 但显然还有其他事情发生了。

【问题讨论】:

    标签: ajax cakephp-3.0


    【解决方案1】:

    如果我将 URL 留空并使用 GET 而不是 POST,这将有效 - 应该早点想到这一点。

    echo $this->Form->create('Treasure',['id'=>'myForm']);
    ...
    ?>
    
     <script>
    $( "#myForm" ).submit(function( event ) {
       event.preventDefault();
       $.ajax({
         async:true,
         data:$(this).serialize(),
         dataType:"html",
         success:function (data, textStatus) {
           $(".ajax-result").html(data);
         },
         type:"GET"
        });
     </script>
    

    按预期工作。希望这对某人有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-26
      • 2012-08-05
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 2019-05-01
      相关资源
      最近更新 更多