2012-08-01 36 views
0

我想從下拉菜單中檢索選定的值,並通過POST方法使用Yii的ajaxLink函數傳遞它。Yii ajaxLink從下拉菜單中傳遞參數並使用POST方法提交

我可以在beforeSend部分檢索值,例如,

array(// ajaxOptions 
    'type' => 'POST', 
    'beforeSend' => "function() {         
     start_time = jQuery('#start_time').find(':selected').val(); 
     end_time = jQuery('#end_time').find(':selected').val(); 

     this.data += '&start_time='+start_time; 
     this.data += '&end_time='+end_time; 
    }", 
    ....... 

我可以格式化字符串,通過它,並在控制器解析它,但我使用的是從保護和CSRF如果我通過參數作爲單個字符串我得到「CSRF令牌無法驗證」錯誤。

期待您的回覆。

回答

1

將所有內容放在表單中並提交(通過AJAX請求) - 然後表單將像往常一樣發佈,而且您不必陷入任何值。或者,你可以直接連接AJAX通過htmlOptions下拉菜單,例如:

<form> 
<?php 
    echo CHtml::listBox('field', '', $fieldData, 
     array('ajax' => array(
      'type' => 'POST', 
      'url' => Controller :: createUrl($controllerAction), 
      'dataType'=>'json', 
      'success'=>'function(data) { console.log(data) }' 
      ), 
     ) 
    ); 
?> 

這樣,細節將通過表單POST得到提交;在提交價值後,您可以在PHP中進行任何需要的幫助。

如果您需要提交類型項目,我會使用ajaxSubmitButton()而不是ajaxLink(),然後您將獲取所有表單數據。

相關問題