在 Yii AJAX 调用中向 url 添加参数
Adding a parameter to the url in a Yii AJAX call
我有一个 CHTML:ajax
函数可以在 select 下拉菜单中做一些 AJAX 的事情 - 我只是想做一些事情说..
"on change, grab the selected value & pass that as param childID
in the URL"
这应该会在
的 url
部分显示以下内容
CHTML::ajax function:-
'url' => 'isAjax=1&childID=5134156'
我试图将变量 selected 附加到 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 文档:
Since Javascript is (usually) a client-side technology, and PHP is
(usually) a server-side technology, and since HTTP is a "stateless"
protocol, the two languages cannot directly share variables.
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',
...
})
我有一个 CHTML:ajax
函数可以在 select 下拉菜单中做一些 AJAX 的事情 - 我只是想做一些事情说..
"on change, grab the selected value & pass that as param childID
in the URL"
这应该会在
的url
部分显示以下内容
CHTML::ajax function:-
'url' => 'isAjax=1&childID=5134156'
我试图将变量 selected 附加到 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 文档:
Since Javascript is (usually) a client-side technology, and PHP is (usually) a server-side technology, and since HTTP is a "stateless" protocol, the two languages cannot directly share variables.
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',
...
})