У меня есть кнопка на html-странице, которая позволяет начать обновление данных для отображения в таблице.Это обновление запускается при событии click через вызов ajax.Вызов ajax работает нормально, за исключением того, что данные не были обновлены.Проведя небольшой тест на моем коде, я понял, что, если я запускаю метод моего класса, непосредственно перезагружая страницу, данные обновляются освежающе.Вот что я делаю:
<?php
if(PermissionManager::isSuperAdmin()){
require_once('controllers/RiTableController.php');
if(isset($_POST['ri']) && $_POST['ri'] == "refresh"){
RiTableController::refreshRIData();
}
?>
<script type="text/javascript" src="assets/js/ri_table.js" ></script>
<script type="text/javascript" src="assets/js/datatables.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
rendertable(<?php echo json_encode(RiTableController::getDataTableRi())?>);
});
function launch_ri() {
$(".loading").css("display","block");
$.ajax({
type:'POST',
//url:'ri_table_view.php',
data:"ri=refresh",
success: function(data){
$(".loading").css("display","none");
alert('successful');
location.reload();
}
});
};
</script>
<div class="row">
<div class="col-md-6">
<h1>IR list</h1>
<h4 type="text" value="">IR tracking list of builds</h4>
</div>
</div>
<div class="row" style="display: flex;align-items: center;margin-bottom:30px">
<div class="col-md-2">
<button type="button" id="launch_ri" name="launch_ri" onClick="launch_ri();" align="right" class="btn btn-default">Refresh List</button>
</div>
</div>
<div class="row">
<div class="col-md-12">
<table style="font-size:12px" width="100%" id="table_RI" class="table table-condensed table-bordered table-hover"></table>
</div>
</div>
<?php
}
?>
Вот метод, который называется
<code>public static function refreshRIData(){
set_time_limit(180);
// Insert data in db from Plan
RITable::insertRiFromTPaln();
$data_Ri = RITable::gtRiForRefresh();
for ($i=0; $i < sizeof($data_Ri) ; $i++) {
// set RI ref
$RI = $data_Ri[$i]['ri_ref_ri'];
// get all transactions impacted by this RI
$transactions_impacted_result = RITable::getTransactionImpacted($RI);
// prepare variable to insert in db
$transactions_impacted = json_encode($transactions_impacted_result);
// get first transaction impacted
$transaction_result = RITable::getTransaction($RI);
$transaction = json_encode(array('pod_id' => $transaction_result['pod_id'], 'pod_name' => $transaction_result['pod_name']));
// get info of Ri from webservice
$info_ri = json_decode(WebServiceController::RefreshRI($RI));
//echo '<pre>'; print_r($info_ri); echo '
';$ owner = $ info_ri-> response-> owner;// форматировать дату $ create_date = new DateTime ($ info_ri-> response-> creation_date);$ create_date = $ create_date-> format ('Ymd H: m: i');$ target_date = new DateTime ($ info_ri-> response-> target_correction_date);$ target_date = $ target_date-> format ('Ymd H: m: i');// создаем кеш Pno для пользователей if (isset ($ owner)) {$ cache_to_renew =! Login :: cacheToKeep ($ owner);} if ($ cache_to_renew) {self :: reLoadPno ($ owner);} // получить марку пользователя в кэш-файлах pno $ brand = RcaviewController :: getBrand ($ info_ri-> response-> owner);// вызов метода для вставки данных в db RITable :: updateRI ($ RI, $ info_ri-> response-> title, $ info_ri-> response-> current, $ issue, $ транзакция, $ info_ri-> response-> required_for_program,$ info_ri-> response-> owner, $ brand, $ target_date, $ create_date, $ Transactions_impacted);} set_time_limit (30);вернуть истину;} приватная статическая функция reLoadPno ($ owner) {echo "