Saya mencoba mengirimkan formulir tersembunyi setiap kali halaman dimuat, yang fungsinya telah saya buat di pengontrol saya. Masalah saya adalah saya tidak ingin meninggalkan tampilan saat ini, tetapi saya juga tidak dapat mengalihkan ke tampilan yang saya inginkan karena itu akan membuat putaran konstan saat memuat halaman, memanggil fungsi saya ketika pemuatan telah selesai dan kemudian mengarahkan ulang lagi. Oleh karena itu, saya ingin memanggil fungsi ini tanpa mengalihkan ke tampilan sebelumnya tetapi juga tanpa merender tampilan baru, yang mana saya menggunakan yang berikut ini:
$this->autoRender = false;
$this->layout = false;
$this->render(false);
Namun demikian, baris-baris ini sepertinya tidak berfungsi untuk saya, karena tindakan terus dialihkan ke fungsi ini mencoba membuat tampilan yang tidak ada alih-alih tetap berada di tampilan sebelumnya. Karena itu, saya ingin tahu apakah ada alternatif lain untuk dapat memanggil satu fungsi di pengontrol saya tetapi tetap berada di halaman tempat saya berada (bukan dengan mengalihkan karena aspek perulangan). Jika ini membantu, saya menambahkan kode yang saya miliki untuk tindakan ini:
Ini adalah bagian dari tampilan yang saya ingin tetap dirender di mana saya memiliki fungsi yang terkait dengan formulir tersembunyi
<?= $this->Form->create('Save data', array('url'=>'/exportations/save_data/'.$id, 'enctype' => 'multipart/form-data', 'method' => 'post', 'id' => 'data'))?>
<input type="hidden" id="svgGraph" />
<div class="" id="cont" style="display:none;"></div>
<?=$this->Form->end()?>
</div>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function(){
var chart = Highcharts.chart( // code to create graph
);
var svg = chart.getSVG();
$("#svg1").val(svg1);
});
$(document).ready(function () {
document.getElementById('data').submit();
});
</script>
Ini adalah fungsi pengontrol '/exportations/save_data/' saya saat ini:
public function save_data(){
$this->autoRender = false;
$this->layout = false;
$this->render(false);
if($this->request->is('post')) {
$data = $this->request->data;
$exportation = $this->Exportation->save($data);
}
return;
}
Saat ini, dengan kode ini, data berhasil disimpan, tetapi pengguna berakhir dengan tampilan kosong, saat pengontrol mencoba merender tampilan save_data.