【问题标题】:How to pass extra data content on yii activeform's ajax parameters?如何在 yii activeform 的 ajax 参数上传递额外的数据内容?
【发布时间】:2015-09-30 06:00:07
【问题描述】:

我正在尝试在单击单选按钮时设置 ajax 请求。这是我正在尝试的代码。

<?php echo $form->dropDownListRow($model, 'page', $pages, array('class' => 'span5', 'prompt' => '-- page --')); ?>    

<?php echo $form->radioButtonListInlineRow($model, 'for', array('desktop'=>'Desktop', 'mobile'=>'Mobile'), array('ajax' => array(
    'type'=>'POST', 
    'url'=>Yii::app()->createUrl('/admin/adv/loadpositions'), //or $this->createUrl('loadcities') if '$this' extends CController
    'update'=>'#Adv_position', //or 'success' => 'function(data){...handle the data in the way you want...}',
    'data'=>array('for'=>'js:this.value', 'page' => 'XXXXXXXX'),
    ))); 
?>

我只想将它的值以及它的上字段值传递给 ajax 操作。我怎样才能让它成真。 'data'=>array('for'=>'js:this.value', 'page' => 'XXXXXXXX'),。 提前致谢。

【问题讨论】:

    标签: javascript php jquery ajax yii


    【解决方案1】:

    $(this.form).serialize()

    会给你表格数据。尝试类似:

    <?php 
    echo $form->radioButtonList($model, 'for', array('desktop'=>'Desktop', 'mobile'=>'Mobile'), array('ajax' => array(
    'type'=>'POST', 
    'url'=>Yii::app()->createUrl('/admin/adv/loadpositions'),     
    'data'=>array('data'=>'js:$(this.form).serialize()'),
    ))); 
    ?>
    

    更新:

    您可以使用 PHP 函数 parse_str 轻松解析此序列化字符串

     <?php
     $data = 'str1=value1&str2=value2';
     parse_str($data);   
     echo $str1; //value1
     echo $str2; //value2
    

    【讨论】:

    • 这听起来不错.. 但是,当我打印 POST 数据时,它显示 Array ( [data] =&gt; Adv%5Btitle%5D=&amp;Adv%5Bpage%5D=profession&amp;Adv%5Bfor%5D=&amp;Adv%5Bfor%5D=desktop&amp;Adv%5Bposition %5D=0&amp;Adv%5Bcode%5D=&amp;Adv%5Bstatus%5D=1 )
    【解决方案2】:

    只需将您的 data 属性更改为如下所示:

    'data'=>array('for'=>'js:this.value', 'page' => 'js:$("#someId").val()'),
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-12
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      相关资源
      最近更新 更多