我正在编写一个脚本,该脚本将用于在导出大量数据时显示进度条。要想做到这一点,你需要知道你总共有多少个位置,并将这个数字保留在某个地方。
当我在WordPress之外运行下面的代码时,它就会按预期工作。
它显示此输出。
{"uncoded":"123"}
not null
not null
not null
not null
它在第一个循环中为null,因此它获取值,然后设置$total值,因此它不再为null。但当我通过AJAX调用它时
getTotal()
始终为空。第一次应该为null,但之后不能为null。它应该包含第二次尝试时的行总数。
这是我正在使用的代码。
class progress {
private static $total = null;
public function getTotal() {
return self::$total;
}
public static function setTotal() {
self::$total = \'123\';
}
}
class batch extends progress {
function __construct() {
add_action( \'wp_ajax_batch_actions\', array( $this, \'run\' ) );
add_action( \'wp_ajax_nopriv_batch_actions\', array( $this, \'run\' ) );
}
public function run() {
if ( is_null( $this->getTotal() ) ) {
$this->setTotal();
$total = $this->getTotal();
echo json_encode( array( \'uncoded\' => $total ) );
} else {
echo \'not null\';
}
exit();
}
}
我有点困惑,为什么在WordPress中没有AJAX的情况下这一切都很好,但一旦使用AJAX操作,它就无法记住美元的总值。它总是空的?
有人知道为什么,以及如何让它在AJAX中正常工作吗?