Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript YII:如何将参数列表从js传递给控制器,并通过传递另一个列表来调用新视图?_Javascript_Ajax_Yii_Jquery Post - Fatal编程技术网

Javascript YII:如何将参数列表从js传递给控制器,并通过传递另一个列表来调用新视图?

Javascript YII:如何将参数列表从js传递给控制器,并通过传递另一个列表来调用新视图?,javascript,ajax,yii,jquery-post,Javascript,Ajax,Yii,Jquery Post,我是yii的新手。我试图在“点击”按钮的情况下将参数列表从js传递给我的控制器 我的代码是(在名为“studentReport”的视图中): 同一表单中的我的js代码: function passParams(){ var selctedbox = []; for(var i=0; i<fields.length; i++){ selctedbox .push(fields[i].value); } $.post( <?php echo "'" . $thi

我是yii的新手。我试图在“点击”按钮的情况下将参数列表从js传递给我的控制器
我的代码是(在名为“studentReport”的视图中):

同一表单中的我的js代码:

function passParams(){
  var selctedbox = [];
  for(var i=0; i<fields.length; i++){
    selctedbox .push(fields[i].value);
  }

  $.post( <?php echo "'" . $this->createUrl('student/post') ."'" ; ?>, 
   { idList: selctedbox } );
}
在这里,我想将我的值列表传递给action Post()。
我不想在url中显示传递的参数,也不想用控制器传递的参数打开新视图。
我应该怎么做?

使用ajax Jquery Post

 function passParams(){
 var selectedbox = [];
 selectedbox.push(fields[1,2,3]);

$.post( <?php echo "'" . $this->createUrl('student/post') ."'" ; ?>, 
       { try: 'atry', postselectedbox: selectedbox } );    
}
记住,符号是

public function actionPost()    // camelCase  and not actionpost
{
   // and for check add 
   var_dump($_POST)
   $newList= array();
   $idListe=$_POST;
   .......



 this->render('_compose',array('newList'=>$newList,'model'=>$model));
如果您的url错误(学生/学生),请删除学生表单url

$.post( <?php echo "'" . $this->createUrl('post') ."'" ; ?>, 
 { idList: selctedbox } );
$。发布(请尝试以下代码:

<?php echo CHtml::Button('SUBMIT',array('onclick'=>'passParams();')); ?> 

<script type="text/javascript">
    function passParams(){ 
        var data=$("#formID").serialize();
        $.ajax({
            type: 'POST',
            url: '<?php echo Yii::app()->createAbsoluteUrl("student/post"); ?>',
            data:data,
            success:function(data){
                alert(data); 
            },
            error: function(data) { // if error occured
                alert("Error occured.please try again");
                alert(data);
            }
        });
    } 
</script>

函数passParams(){
var data=$(“#formID”).serialize();
$.ajax({
键入:“POST”,
url:“”,
数据:数据,
成功:功能(数据){
警报(数据);
},
错误:函数(数据){//如果发生错误
警报(“发生错误,请重试”);
警报(数据);
}
});
} 

您也可以使用ajaxsubmit按钮

 <?php

        echo CHtml::ajaxSubmitButton ('Create','default/create',
                    array(
                        'data'=>'js:$("#test-form").serialize()',
                        'method'=>'post'  ,
                         'success' => 'function(html) {  
                                    if(html=="success"){ 
                                        window.location="";
                                    }else{
                                        jQuery("#errorSummary").html(html)
                                    }}',
            ),array('class'=>'test') ); 

    ?>

我稍微更新了答案..但是你得到了一个var_dump(..)空的或没有var_转储?我尝试了你的更新,我可以使用var_转储获取值,但问题是我调用了此控制器中的另一个视图。此视图未打开。请在$中更好地解释。post称为student/post,而你称为哪个视图?操作?你不会..请以清晰的方式解释,以便我可以帮助你..我已使用正确的选项更新了答案t表示actionPost。然后告诉我var_dump是否显示某些内容(用var_dump的结果更新了您的问题)我也这样做了,我在$idListe中也得到了值,但现在我的问题是我的视图文件没有被调用。url在我调用我的视图的actionPost()方法中也没有更改。但是视图文件没有打开。
$.post( <?php echo "'" . $this->createUrl('post') ."'" ; ?>, 
 { idList: selctedbox } );
<?php echo CHtml::Button('SUBMIT',array('onclick'=>'passParams();')); ?> 

<script type="text/javascript">
    function passParams(){ 
        var data=$("#formID").serialize();
        $.ajax({
            type: 'POST',
            url: '<?php echo Yii::app()->createAbsoluteUrl("student/post"); ?>',
            data:data,
            success:function(data){
                alert(data); 
            },
            error: function(data) { // if error occured
                alert("Error occured.please try again");
                alert(data);
            }
        });
    } 
</script>
 <?php

        echo CHtml::ajaxSubmitButton ('Create','default/create',
                    array(
                        'data'=>'js:$("#test-form").serialize()',
                        'method'=>'post'  ,
                         'success' => 'function(html) {  
                                    if(html=="success"){ 
                                        window.location="";
                                    }else{
                                        jQuery("#errorSummary").html(html)
                                    }}',
            ),array('class'=>'test') ); 

    ?>