登録画面のボタンを押して、Ajaxを用いたデータのやり取りをしたあと、一覧画面に戻るというプログラムを作りたいです。ですが、一覧画面に戻るときにエラーが起きてしまいます。動きを追うと、Ajaxに記載している'.done()'と'.fail()'のどちらにも入らなかったあと、再度データのやり取りを行っているコントローラーの関数に入って、コードの中にある(*1)文字が画面にでていました。Ajaxの'.done()'に入れるようにするにはどうすればよいのでしょうか?
[View]
jquery
1 $(function(){ 2 $('.koushin').on('click',function(){//更新ボタン 3 $.ajax({ 4 url:"/bank/modaledit", 5 type: "post", 6 dataType: "json", 7 data: { 8 "Bk.code":$('#Ubk_code').val(), 9 "Bk.name":$('#Ubk_name').val() , 10 "Bk.number":$('#Ubk_number').val(), 11 "Bk.recipient":$('#Ubk_recipient').val(), 12 "Bk.updatetime":$('#udatetime').val() 13 }, 14 }) 15 .done(function(data){ 16 arert(data); 17 18 }) 19 .fail(function (jqXHR, textStatus, errorThrown){ 20 alert('更新できませんでした'); 21 console.log("ajax通信に失敗しました"); 22 console.log("jqXHR : " + jqXHR.status); // HTTPステータスが取得 23 console.log("textStatus : " + textStatus); // タイムアウト、パースエラー 24 console.log("errorThrown : " + errorThrown.message); // 例外情報 25 26 }); 27 modal_close(); 28 }); 29 30});
[controller]
PHP
1class BkController extends AppController{ 2 public function index(){ 3 try 4 { 5 6 $data = $this->find('all'); 7 $this->log( $this->Bank->getDataSource()->getLog(), 'debug');//SQLログを 8 if(!$data){ 9 throw new Exception('一覧に表示するデータがありません。'); 10 }else{ 11 $this->set('data',$data); 12 } 13 } catch(Exception $ex) { 14 $this->log($ex,'error'); 15 echo "error:".$ex->getMessage(); 16 } 17 } 18 19 public function modaledit(){ 20 21 if($this->request->isPost()) { 22 $this->Bk->id = $this->data['bk']['code']; 23 $this->Bk->save($this->data , false); 24 $this->autoRender = false; 25 return json_encode('Processing success'); //*1 26 } 27 $this->redirect('/bk/index'); 28 } 29 30}
開発環境:netbeans
フレームワーク:CakePHP2.x
ブラウザ:googlechrome
追加してほしい補足してほしい情報があれば、お尋ねください。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/20 00:31
2020/08/20 01:57
2020/08/20 01:57
2020/08/20 09:53