【问题标题】:Need a solution for storing values in a php array using ajax in yii需要在 yii 中使用 ajax 将值存储在 php 数组中的解决方案
【发布时间】:2014-02-11 07:29:09
【问题描述】:

我有这个 ajax 调用

<script>
function add(serviceId){
$.ajax({
    url: "<?php echo Yii::app()->createUrl($bus->url.'/serAjax'); ?>",
    type: "POST",
    data: {"serviceId": serviceId},

    success: function(result){         
        $("#services").append(result);
    },
    error: function (){
        alert('Error');
   }
  });
}

ajax 调用这个页面

if(isset($_POST['serviceId']))
    {

       $serviceId = $_POST['serviceId'];

    }
    $service = Services::model()->findByPk($serviceId);

    $all = array();
    $ids = array();
    //add services to array
    array_push($all, $service->title);
    array_push($ids, $service->id);

    Yii::app()->session['serviceId'] = $ids;

    foreach ($all as $a){
        echo '<li class="list-group-item">'.$a.'</li>';
    }

用户可以单击多个服务选项,并且每次执行此操作时都会调用此 ajax。现在我想要发生的是每次用户添加服务时,它都会将服务 id 存储在 $ids = array();但是发生的事情是,每次进行 ajax 调用时,它都会清空数组,只留下最后选择的服务。我需要它来保留所有的 id。

【问题讨论】:

    标签: javascript php jquery ajax yii


    【解决方案1】:

    这样试试,

    if(Yii::app()->session['serviceId'])
        $ids  =  Yii::app()->session['serviceId'];
    else
        $ids = array();
    

    【讨论】:

      【解决方案2】:

      你应该使用内置函数 setState 来存储这些值,像这样

      Yii::app()->user->setState('serviceId', $ids);
      

      代替:

          Yii::app()->session['serviceId'] = $ids;
      

      然后使用 getState 取回值

      【讨论】:

        【解决方案3】:

        这只是一个想法,可能会有更好的解决方案。

        每次发出请求时,都会再次创建数组,并且会丢失之前的值。相反,您可以使用一些涉及会话的解决方案。

        就像在某处声明基于会话的数组,这样就不会再次创建它

        $_SESSION['all'] = array();
        $_SESSION['ids'] = array();
        
        //add services to array
        array_push(  $_SESSION['all'], $service->title);
        array_push($_SESSION['ids'], $service->id);
        

        【讨论】:

          猜你喜欢
          • 2023-03-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-27
          • 1970-01-01
          • 2019-04-16
          • 2011-09-03
          • 2015-01-26
          相关资源
          最近更新 更多