я хочу добавить некоторую строку к URL-адресу в процессе ajax, но терплю неудачу каждый раз, когда я обращаюсь к функции. когда я отправляю форму, она получает доступ только к этому 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.info(data);
$('#notif').html(data);
}
});
Отладьте код и посмотрите, что вы получите в переменной «submit_url», используйте console.info
Убедитесь, что переменная submit_url перезаписывается в любом из условий if else, потому что, если она не войдет в какое-либо условие, тогда, конечно, будет принята пустая строка, поскольку вы инициализировали ее как ''
просто проверьте значение jenis_submit в консоли. Возможно, это потому, что значение jenis_submit не в 1 или 2
Просто присвойте значение php переменной js и объедините оба
var url = '<?php echo base_url();?>Master_data/';
а потом в аяксе
url: url + submit_url,
ОБНОВЛЕНО:
Я пропустил еще одну ошибку в вашем коде
var number = document.getElementById("number").value; //in your code `.value` is missing
как упоминалось в ответе выше (М. Хемант).
Кажется, это не имеет никакого значения. То, что вы делаете, это просто объявлять переменную по-разному, а затем использовать ее в ajax... Тогда нет никакой разницы в вашем коде и коде Резы
нет, в ajax URL-адрес считается завершенным, когда он получает заканчивающиеся одинарные кавычки. вот почему он не получает эту переменную. поэтому я пытаюсь назначить его новой переменной и заполнить URL-адрес с помощью concat
Я тоже сталкивался с такими ситуациями. пусть он попробует это и вернется к нам со своими ответами...
Хорошо, пусть он попробует, и мы придем к выводу позже, если это вообще когда-либо произойдет.
Во-первых, получите значение по идентификатору с помощью javascript, как это,
//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";
}
тогда Замените свой код на этот
url: "<?php echo base_url('master_data/'); ?>" + submit_url,
И что это даст? <?php echo base_url();?>
означает, что это предыдущая часть URL-адреса, то есть перед «Master_data/», и это может быть что угодно
предположим, что master_data
— его контроллер, а submit_url
— функция, поэтому она создаст localhost/prjname/master_data/function_name
Попробуй это:
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.info(data);
$('#notif').html(data);
}).fail(function() {
// hide the preloader
// show an error message
});
покажите свою функцию контроллера. также проверьте
submit_url
перед вызовом ajax, имеет ли он правильное значение или нет