簡體   English   中英

在Yii AJAX調用中向網址添加參數

[英]Adding a parameter to the url in a Yii AJAX call

我有一個CHTML:ajax函數,可以在一個選擇的下拉列表中執行一些AJAX任務-我只是想做一些說明。

“在更改時,獲取所選值並將其作為參數childID傳遞給URL”

然后,應在url部分顯示以下內容

CHTML::ajax function:-
 'url' => 'isAjax=1&childID=5134156'

我嘗試將選擇的變量附加到url上,但是它不起作用-有人能看到我在做什么嗎?

jQuery(function($) {
    $('#child-form select[name="Child[user_id]"]').bind('change', function(e){
  var selected = this.value;
  console.log('selected : '+selected ); // outputs an ID to the console.

   <?php echo CHtml::ajax(array(
                  'url' => '?isAjax=1&childID='+selected,
                  'type' => 'post',
                  'update' => '#parents-sidebar',
       // rest of the ajax function (quite long...)

您無法使用javascript提取從dom中提取的值並將其直接注入PHP代碼。

從PHP.net文檔中:

由於Javascript(通常)是客戶端技術,而PHP是(通常)服務器端技術,並且由於HTTP是“無狀態”協議,因此這兩種語言無法直接共享變量。

CHtml::ajax()主要是用於生成JavaScript代碼的快捷方式。 因此,簡單的解決方案就是手動編寫JavaScript。 這樣您就可以使用selected變量。

注意:您可以嘗試在評論中發布的Taron Saribekyan的解決方案。 這個想法是,JavaScript表達式('... + selected')將由PHP打印為字符串,從而由javascript進行評估。 從理論上講,這應該起作用。

那是顯而易見的。 您已經定義了一個javascript變量,並且正在php代碼中使用它! <?php ?>塊中的所有內容都將在服務器上和javascript之前解釋。 因此,我認為您應該使用普通的jquery ajax方法。 像這樣:

$.ajax({
   "url": <?php echo Yii::app()->baseUrl.'/controller/action' ?>'?isAjax=1&childID='+selected,
    'type' => 'post',
     ...
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM