Bonjour à tous !
Voilà, je suis une grande débutante en ajax, et j'aurais besoin d'aide pour une petite fonctionnalité.
J'ai un formulaire d'ajout de demandes, et sur ce formulaire j'ai un bouton qui permet de dupliquer une demande existante. Donc quand je clique, une pop-in s'ouvre avec une liste déroulante contenant toutes les demandes existantes. Quand j'en choisis une et que je clique sur ok, la pop-in doit se fermer et le formulaire doit être pré-rempli avec les données de la demande choisie.
Voilà ce que j'ai fais pour le moment, je précise que je code sous CakePHP3 :
La pop-in :
<?php echo $this->Form->input('demandes', ['options' => $listeDemandes, 'empty' => 'Sélectionnez une demande à dupliquer', 'label' => false]); ?> <a href="#!" type="button" class=" modal-action modal-close waves-effect waves-green btn" id="dupli" onclick="duplicate();">Ok</a>
La fonction js duplicate():
`
function duplicate(){
var id = $('#demandes').val();
console.log(id);
$.ajax({
url: "/Intranet/demande-evolution/demandes/duplicate"+id,
data: {
id: id
},
dataType: 'json',
type: 'get',
success: function(json)
{
console.log('success');
console.log(json.demande);
},
error:function(jqXHR, textStatus, errorThrown)
{
console.log('erreur');
}
});
}
`
Et la fonction php vers laquelle elle renvoie:
public function duplicate() { $demande_id = $this->request->data['demandes']; $demande = $this->Demandes->find()->where(['id' => $demande_id])->first(); debug($demande); header('Content-Type: application/json'); json_encode($demande); $this->set(compact('demande')); $this->set('_serialize', ['demande']); }
Pour le moment, j'arrive à récupérer l'id de la demande choisie dans la liste déroulante en JS.
Mais j'ai une erreur GET : GET http://localhost/Intranet/demande-evolution/demandes/duplicate1?id=1 404 (Not Found)
J'avoue que je ne sais pas trop comment faire... Et j'ai plus l'impression de me mélanger les pinceaux et de m'embrouiller... Donc si quelqu'un pouvait m'aider ce serait vraiment gentil ^^'
Merci par avance pour votre aide !
Ju'