2014-07-23 30 views
0

我想在Cakephp中使用JsHelper實現Ajax功能。 通過下面的代碼,我可以通過Ajax實現所需的結果。CakePHP使請求數據只包含選定的字段值在JSHelper

$data = $this->Js->serializeForm(array('isForm' => false, 'inline' => true)); 
$this->Js->get('#PostTitle')->event('change', 
    $this->Js->request(
     array('controller' => 'posts', 'action' => 'get_slug'), 
      array(
       //'update' => '#PostSlug', 
       'success'=>'$("#PostSlug").val(data);', 
       'async' => true, 
       'dataExpression' => true, 
       'evalScripts' => true, 
       'method' => 'post', 
       'data' => $data, 
     ) 
    ) 
); 
echo $this->Js->writeBuffer(); 

我的問題是如何將所選表單值作爲$ data傳遞,而不是以串行化形式發送所有表單值。

例如,我只想發送單個字段「標題」而不是整個表單的數據。

在此先感謝。

回答

2

相反,我們可以使用下面的代碼發佈數據。

'data' => '{state_id:$("#UserStateId").val()}', 
+0

相比,另一種則是貼在下面,因爲網址**(陣列(「控制器」 =>「帖子」,這是更好的解決方案,「動作」 =>「get_slug」,$這個 - >形式 - > value('Post.id'),'Some Value'))**就像靜態一樣。 感謝您的回答。有用。 –

0

作爲替代方法,我使用下面的代碼作爲參數傳遞值而不是GET或POST方法。

$data = $this->Js->serializeForm(array('isForm' => false, 'inline' => true)); 
$this->Js->get('#PostTitle')->event('change', 
$this->Js->request(
    array('controller' => 'posts', 'action' => 'get_slug', $this->Form->value('Post.id'), 'Some Value'), 
     array(
      //'update' => '#PostSlug', 
      'success'=>'$("#PostSlug").val(data);', 
      'async' => true, 
      'dataExpression' => true, 
      'evalScripts' => true, 
      'method' => 'post', 
      'data' => $data, 
    ) 
) 
); 
echo $this->Js->writeBuffer(); 

我傳遞POST_ID和定製一些價值作爲參數。

相關問題