Je veux ajouter une chaîne à l'URL dans le processus ajax, mais échoue à chaque fois que j'accède à la fonction. lorsque j'envoie le formulaire, il n'accède qu'à cette URL 'Master_data /'
var jenis_submit = document.getElementById('jenis_submit'); var submit_url = ''; if (jenis_submit == '1') { submit_url = "func_save_instansi"; } else if (jenis_submit == '2') { submit_url = "func_update_instansi"; } $.ajax({ url: '<?php echo base_url();?>Master_data/' + submit_url, method: 'POST', data: dataKirim, contentType: false, cache: false, processData: false, success: function(data) { // console.log(data); $('#notif').html(data); } });
3 Réponses :
Attribuez simplement la valeur php à une variable js et concattez à la fois
var number = document.getElementById("number").value; //in your code `.value` is missing
puis en ajax
url: url + submit_url,
MISE À JOUR:
J'ai manqué une autre erreur dans votre code
var url = '<?php echo base_url();?>Master_data/';
comme mentionné dans la réponse de (M.Hemant) ci-dessus.
Cela ne semble pas faire de différence. Ce que vous faites, c'est simplement déclarer une variable différemment, puis l'utiliser en ajax ... Il n'y a aucune différence entre votre code et celui de Reza alors
no en ajax, l'url pense comme terminée lorsqu'elle obtient une fin entre guillemets simples. c'est pourquoi il n'obtient pas cette variable. donc j'essaye de l'attribuer à une nouvelle variable et de compléter l'url avec concat
Moi aussi, j'ai fait face à ce genre de situations. laissez-le essayer et revenez vers nous avec ses réponses ...
Ok, laissez-le essayer et nous conclurons plus tard si c'est même un cas.
Premièrement, obtenez la valeur par identifiant avec du javascript comme celui-ci,
url: "<?php echo base_url('master_data/'); ?>" + submit_url,
puis Remplacez votre code par ceci
//var number = document.getElementById("number").value; //in your code `.value` is missing var jenis_submit = document.getElementById('jenis_submit').value; var submit_url = ''; if (jenis_submit == '1') { submit_url = "func_save_instansi"; } else if (jenis_submit == '2') { submit_url = "func_update_instansi"; }
Et qu'est-ce que cela va faire? php echo base_url ();?>
signifie qu'il s'agit de la partie précédente de l'url, c'est-à-dire avant "Master_data /" et que cela pourrait être n'importe quoi
supposons que master_data
est son contrôleur et submit_url
est une fonction, donc il créera localhost / prjname / master_data / function_name
Essayez ceci:
var jenis_submit = document.getElementById('jenis_submit'); var submit_url = ''; if (jenis_submit == '1') { submit_url = "func_save_instansi"; } else if(jenis_submit == '2') { submit_url = "func_update_instansi"; } var post_url = '<?php echo base_url('Master_data'); ?>' + '/' + submit_url; $.ajax({ type: "POST", url: post_url, data: dataKirim, beforeSend: function() { // you can show a preloader here } }).done(function(data) { // hide the preloader // console.log(data); $('#notif').html(data); }).fail(function() { // hide the preloader // show an error message });
montrez la fonction de votre contrôleur. vérifiez également
submit_url
avant l'appel ajax qu'il a la bonne valeur ou nonDéboguez le code et voyez ce que vous obtenez dans la variable "submit_url", utilisez console.log
Assurez-vous que la variable submit_url est écrasée dans l'une des conditions if else, bcoz si elle n'entre dans aucune condition, alors bien sûr sera considérée comme une chaîne vide comme vous l'avez initialisée à ''
il suffit de vérifier la valeur de jenis_submit dans la console.C'est peut-être parce que la valeur de jenis_submit n'est pas en 1 ou 2