diff --git a/cake/libs/view/helpers/jquery_engine.php b/cake/libs/view/helpers/jquery_engine.php index 476327b91..407eca62b 100644 --- a/cake/libs/view/helpers/jquery_engine.php +++ b/cake/libs/view/helpers/jquery_engine.php @@ -240,7 +240,13 @@ class JqueryEngineHelper extends JsBaseEngineHelper { } $options['url'] = $url; if (isset($options['update'])) { - $options['success'] = 'function (msg, status) {$("' . $options['update'] . '").html(msg);}'; + $wrapCallbacks = isset($options['wrapCallbacks']) ? $options['wrapCallbacks'] : true; + if ($wrapCallbacks) { + $success = '$("' . $options['update'] . '").html(data);'; + } else { + $success = 'function (data, textStatus) {$("' . $options['update'] . '").html(data);}'; + } + $options['success'] = $success; unset($options['update']); } $callbacks = array('success', 'error', 'beforeSend', 'complete'); diff --git a/cake/tests/cases/libs/view/helpers/jquery_engine.test.php b/cake/tests/cases/libs/view/helpers/jquery_engine.test.php index 65194a7df..0313f23d5 100644 --- a/cake/tests/cases/libs/view/helpers/jquery_engine.test.php +++ b/cake/tests/cases/libs/view/helpers/jquery_engine.test.php @@ -160,6 +160,12 @@ class JqueryEngineHelperTestCase extends CakeTestCase { $expected = '$.ajax({url:"\\/posts\\/view\\/1"});'; $this->assertEqual($result, $expected); + $result = $this->Jquery->request(array('controller' => 'posts', 'action' => 'view', 1), array( + 'update' => '#content' + )); + $expected = '$.ajax({success:function (data, textStatus) {$("#content").html(data);}, url:"\/posts\/view\/1"});'; + $this->assertEqual($result, $expected); + $result = $this->Jquery->request('/people/edit/1', array( 'method' => 'post', 'before' => 'doBefore', @@ -179,7 +185,7 @@ class JqueryEngineHelperTestCase extends CakeTestCase { 'method' => 'post', 'wrapCallbacks' => false )); - $expected = '$.ajax({success:function (msg, status) {$("#updated").html(msg);}, type:"post", url:"\\/people\\/edit\\/1"});'; + $expected = '$.ajax({success:function (data, textStatus) {$("#updated").html(data);}, type:"post", url:"\\/people\\/edit\\/1"});'; $this->assertEqual($result, $expected); $result = $this->Jquery->request('/people/edit/1', array( @@ -190,7 +196,7 @@ class JqueryEngineHelperTestCase extends CakeTestCase { 'data' => '$("#someId").serialize()', 'wrapCallbacks' => false )); - $expected = '$.ajax({data:$("#someId").serialize(), success:function (msg, status) {$("#updated").html(msg);}, type:"post", url:"\\/people\\/edit\\/1"});'; + $expected = '$.ajax({data:$("#someId").serialize(), success:function (data, textStatus) {$("#updated").html(data);}, type:"post", url:"\\/people\\/edit\\/1"});'; $this->assertEqual($result, $expected); $result = $this->Jquery->request('/people/edit/1', array(