[英]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.