Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/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 模型中的变量未更新_Javascript_Php_Jquery_Ajax_Yii2 - Fatal编程技术网

Javascript 模型中的变量未更新

Javascript 模型中的变量未更新,javascript,php,jquery,ajax,yii2,Javascript,Php,Jquery,Ajax,Yii2,我的模型有$curent\u day变量。当我试图通过Ajax更新它的值时,changeDay()返回新值,但在changeDay()之后调用的getDay()返回旧值。怎么了 控制器 public function actionChangeDay($new_curent_day){ if(Yii::$app->request->isAjax){ $this->planing_model->curent_day = $new_curent_day;

我的模型有$curent\u day变量。当我试图通过Ajax更新它的值时,changeDay()返回新值,但在changeDay()之后调用的getDay()返回旧值。怎么了

控制器

public function actionChangeDay($new_curent_day){
    if(Yii::$app->request->isAjax){
        $this->planing_model->curent_day = $new_curent_day;
        return $this->planing_model->curent_day;
    }
}

public function actionGetDay(){
    if(Yii::$app->request->isAjax){
        return $this->planing_model->curent_day;
    }
}
Js


您正在分配新模型属性,但未保存它。在此之后:

$this->planing_model->curent_day = $new_curent_day;
Ypu应做到这一点:

$this->planing_model->save();

如何调用这些JS函数?您确定第一次呼叫已完成,然后再拨打第二次呼叫吗?如果您将它们紧跟在一起,则getDay()可能会在值更改之前发出请求,因为这些调用是异步的。是的,我可以执行changeDay()几次,但getDay()将返回旧值。这些函数与不同的元素相关。您是否真的在任何时候保存更新的模型?每个Ajax请求都是对服务器的一个全新请求,因此如果您在一次调用中更改了某些内容,那么它在下一次调用中就不存在了,除非您实际存储了它并在下一次调用中再次获取了它。每个电话基本上都是从零开始启动一切。是的,似乎模型没有保存。我该怎么做?规划模型扩展了模型,而不是ActiveRecord。为什么不呢?ot非常方便。此模型不使用db,它包含很少的变量,如当前月、日、年等,并且它们的值在init()方法中生成。正如您所知,在每个请求中,都会使用其初始值重新创建模型。如果您不将它们持久化(在db或smthng中),您将丢失在请求之间更改的所有数据,并且无法存储它们?
$this->planing_model->save();