Bonsoir,
Je voudrais utiliser Ajax sous Cakephp 3 pour récupérer une clé dans ma base de données.
Seulement, je voulais savoir comment diriger l'url d'action de ma fonction Ajax vers mon Controller:
Controller : Install,
Action: ajax_step1
Malheurement, je sais pas comment faire, voici ce que j'ai actuelement:
var PATH_TO_ACTION = "<?= $this->Url->build(null, ['controller' => 'Install', 'action' => 'ajax_step1']) ?>";
Cordialement
Bonjour,
Mais le problème c'est que si je mes rien, tout le style de ma page disparait, il me reste que le html :/
Cordialement
Il y a une erreur, mais elle s'affiche et disparait aussi tôt.
Ceci dit, en regardant dans l'inspection de l'élément, je vois que:
<?= $this->Url->build(null, ['controller' => 'Install', 'action' => 'ajax_step1']) ?>
M'affiche tout le code source de la page.
Cordialement
Je viens de l'enlever, mais ça me fait toujours la meme chose.
Voici mon code:
Step.ctp:
<div class="install">
<?php
if (isset($Step1)){
?>
<div class="step">
<a><b>Étape 1</b></a>
<br>
<a>Étape 2</a>
<br>
<a>Étape 3</a>
</div>
<div class="content-install">
<div class="title">
<h2>Saisie de la clé</h2>
</div>
<div class="form-install">
<?php
echo $this->Form->create('', ['method' => 'post', 'url' => false]);
echo $this->Form->input('key', ['placeholder' => 'Entrez votre clé de sécurité', 'id' => 'key', 'label' => false]);
echo $this->Form->button('Vérifier', ['id' => 'submit', 'class' => 'lf-btn']);
echo $this->Form->button('Effacer', ['id' => 'key_clear', 'class' => 'lf-btn', 'type' => 'button']);
echo $this->Form->end();
?>
</div>
<div id="next"></div>
</div>
<script type="text/javascript">
$('#submit').submit(function(){
var KEYFORM = $('#key').val();
$.ajax({
url: '<?php echo $this->Url->build(['controller' => 'install', 'action' => 'ajax_step1']); ?>',
type : 'POST',
data : KEYFORM,
success : function(response) {
alert();
}
});
});
</script>
<?php
}elseif(isset($Step2)){
?>
<div class="step">
<a>Étape 1</a>
<br>
<a><b>Étape 2</b></a>
<br>
<a>Étape 3</a>
</div>
<?php
}elseif(isset($Step3)){
?>
<div class="step">
<a>Étape 1</a>
<br>
<a>Étape 2</a>
<br>
<a><b>Étape 3</b></a>
</div>
<?php
}else{
}
?>
</div>
InstallController.php:
<?php
namespace App\Controller;
use App\Controller\AppController;
class InstallController extends AppController
{
public function initialize()
{
parent::initialize();
$this->loadComponent('RequestHandler');
}
public function step()
{
$this->set('pageTitle', 'Installation');
$this->viewBuilder()->layout('World.install.template');
if (file_exists(ROOT . DS . 'install' . DS . 'step.txt') AND !file_exists(ROOT . DS . 'install' . DS . 'installed.txt')){
$file = fopen(ROOT . DS . 'install' . DS . 'step.txt', 'r+');
$getLineFile = fgets($file);
if ($getLineFile == '1'){
$this->set('Step1', 'Step1');
}elseif($getLineFile == '2'){
$this->set('Step2', 'Step2');
}elseif($getLineFile == '3'){
$this->set('Step3', 'Step3');
}else{
}
fclose($file);
}else{
$this->redirect('/');
}
}
public function ajax_step1(){
if($this->request->is('ajax'))
{
}
}
Cordialement