Como faço para mostrar um "progress bar" ou "uma mensagem flash" enquanto os dados são gravados no banco de dados?
Por exemplo:
No meu formulário quando clico no botao gravar, deverá aparecer a mensagem "Espere um pouco enquanto os dados são gravados…". Quanto estiverem gravados deverá aparecer "dados gravados com sucesso".
Neste momento só tenho a mensagem para quando os dados são gravados:
Yii::app()->user->setFlash('success', "Registo inserido com sucesso!");
Mas imaginemos que os dados demoram bastante tempo a serem gravados na bd, deve ser mostrada uma mensagem a dizer "Aguarde que os seus dados estao sendo gravados…"
Imagina que selecionas de uma só vez 1000 produtos, através de um "multiselect" num formulario. O utilizador depois de carregar no botao "gravar" para submeter o formulario, fica à espera que os registos sejam todos inseridos na base de dados. Agora imagina que esta operação demora ai uns 20 segundos. Queria que aparecesse uma mensagem a dizer "Aguarde enquanto os dados estão sendo gravados…". Quando acabasse de gravar aparecia "Dados gravado com sucesso".
Ah sim, nesse caso acredito que a melhor forma é "submeter" o formulário via ajax,
assim enquanto aguarda a resposta, você pode usar algum plugin jquery, tipo o blockUI ou fazer algo na "mao"{que geralmente não recomendo, a não ser em casos bem especificos}.