2015-10-09 8 views
0

У меня есть CHTML:ajax функция, которая делает некоторые AJAX вещи на отборной выпадающего списка - Я просто хочу, чтобы сделать то, что говорит ..Добавление параметра в URL-адрес в вызове Yii AJAX

«на изменения, захватить выбранный значение & прохода, который, как пары childID в URL»

Это должно затем отобразить следующее в url части

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

Я пытался добавить переменный выбранный O Nto 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...) 
+0

Попробуйте так: ' 'URL' => '+ selected'', вместо' "isAjax = 1 & childID =?"' URL»=> 'isAjax = 1 & childID =' + выбран? ' –

ответ

0

Вы не можете принимать значения, извлеченные из йот, используя JavaScript и ввести его непосредственно в PHP код.

Из документации PHP.net:

Так как JavaScript является (обычно) технологией на стороне клиента, а PHP является (обычно) технологией на стороне сервера, а так как HTTP является «лицом без гражданства» , два языка не могут напрямую делиться переменными.

CHtml::ajax() - это прежде всего ярлык для генерации кода javascript. Поэтому простое решение - просто написать свой javascript вручную. Это позволит вам использовать переменную selected.

Примечание: Вы можете попробовать решение для Taron Saribekyan, размещенное в комментарии. Идея состоит в том, что выражение javascript ('... + selected') будет напечатано PHP как строка и, таким образом, будет оценено javascript. Теоретически это должно сработать.

0

Это очевидно. Вы определили переменную javascript, и вы используете ее в своем php-коде! Все внутри <?php ?> блок, будет интерпретироваться на сервере и перед javascript. Итак, я думаю, вы должны использовать обычный jQuery ajax-метод в вашем случае. Что-то вроде этого:

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