2009-06-05 8 views
0

私は簡単なヘルパーのためにすべてのCakePHPプロジェクトでscriptaculousを使用していました。時間の経過とともに、私はますますjQueryに入りました。現在、私は現在のスクリプトスクリプトをjQueryスクリプトに置き換えたいと考えています。これまでは、jQueryのソート可能なものを除いてすべてが良好でした。CakePHPでjQueryソート可能を使用した後のAJAXエラー

JQueryソート可能な実行ですが、その後のAJAX呼び出しは正常に動作していません。

旧CakePHPのコードを(pages_controller.php内):私は、Firebugので

$(".sortable-list").sortable({ 
    update: function() { 
     $.post('/pages/order/0', { 
      data: $('.sortable-list').sortable("serialize") 
     }); 
    } 
}); 
$(".sortable-list").disableSelection(); 

:私のjQueryのように見えます

function order($parent_id = 0){ 
    $this->autoRender=false; 

    //Users with rights may view this 
    $user = $this->checkRights('pages',true); 

    //loop through the data sent via the ajax call 
    foreach ($this->params['form']['page'] as $order => $id){ 
     $this->Page->id = $id; 
     if(!$this->Page->saveField('order',$order)) { 
      $this->flash('Really freaky errors are occuring','/'); 
      exit(); 
     } 
    } 

} 

今、私のプログラマはので、私はあなたたちをお奨め尋ねてきた休日であります次のようなAJAXのポストコールが生成されることを確認してください。

page[]=14&page[]=23&page[]=18&page[]=11&page[]=26&page[]=28 

ただし、動作するようです。

pages_0[] 1 
pages_0[] 3 
pages_0[] 2 

誰もが私が正しく文字列を読み取るためにCakePHPのファイルを調整する方法を知ってい:私は、ページが[] = idは古いScriptaculousのフォーマットという異なっていると思いますか?

+0

エラーは何ですか? –

+0

ああ...そして、それの予想される行動は何か説明できますか? –

+0

警告:(2)警告:foreach()[APP/controllers/pages_controller.php、line 81] –

答えて

0

最後に、jqueryの出力は次のとおりです。data: '& page_0 [] = 1etc'私はデータとその代わりにpage_0にしなければならなかった!

ので:

$(".sortable-list").sortable({ 
    update: function() { 
     $.post('/pages/order/0/, $('#pages_0').sortable("serialize", {key: 'pages_0[]'})) 
    } 
}); 
$(".sortable-list").disableSelection(); 

私は$ .postの第2引数から{}を削除し、それが勝者であることが判明!助けを求める人のためのthx!

1

私は動作するphp環境を持っていませんが、基本的に動作するはずです。

$pages = $_GET['page']; 

foreach($pages as $order => $id) 
{ 
    $this->Page->id = $id; 
      if(!$this->Page->saveField('order',$order)) { 
         $this->flash('Really freaky errors are occuring','/'); 
         exit(); 
       } 

} 

PS。おそらく、"$this->params"のアップデートで問題が発生している可能性があります。

0

foreachの行の前に、

debug($this->params['form']['page']); 

を挿入し、ページ配列がどのように見えるかを参照してください。適切に反復処理します。

+0

私が取得: お知らせ(8):不定 インデックス:ページ[APP /コントローラ/ pages_controller.php、ライン81] と bouw2 /コントローラ/pages_controller.php(ライン81) 警告(2):foreach()[APP/controllers/pages_controller.php、line 82]で無効な 引数が指定されました あなたはどう思いますか?私はそれが何を意味するか分からない。 line 81&82は、 \t \tと対応しています。デバッグ($ this-> params ['form'] ['page']); \t \t foreach($ this-> params ['form'] ['page'] $ order => $ id){ thx! –

+0

は、 'form'配列に 'page'要素がないことを意味します。 – Sergei

関連する問題