PHP не получает данные из http-запроса jqueryJquery

Программирование на jquery
Ответить
Anonymous
 PHP не получает данные из http-запроса jquery

Сообщение Anonymous »

Я знаю, что это очень простой вопрос Ajax. Меня искали все возможные ответы, но ни один из них мне не помог. Итак, вот ситуация
Это мой HTML-код

Код: Выделить всё

Kota/Kabupaten



Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin



Вот мой Ajax-код:

Код: Выделить всё

$('#frm_provinsi').on('change', function() {
var nilai = $(this).val();
console.log(nilai);

if (nilai !== '') {
$.post({
type: 'POST',
url: 'index.php',
data: { frm_provinsi: nilai },
contentType: 'application/x-www-form-urlencoded',
dataType: 'text',
})
.done(function(respon) {
console.log(respon);
// Tampilkan hasilnya di halaman web
$('#hasil').html('Provinsi: ' + respon.nama_provinsi);
})
.fail(function(xhr, status, error) {
console.log(xhr.responseText);
});
} else {
console.log('Nilai tidak boleh kosong');
}
});
Вот мой PHP-код:

Код: Выделить всё

var_dump($_REQUEST);
Он просто пустеет каждый раз, когда я меняю выбор в поле выбора. Я вижу, что Ajax отправляет данные через консоль отладки браузера. Если я вручную отправлю форму POST, PHP получит все значения. Дополнительная информация Работаю по шаблону Inspina. Спасибо за любую помощь и ответ.
Вот некоторые изменения, которые я внес:
Сценарий:
  • Там в форме есть 2 выбора.
  • Первый выбор — frm_provinsi, а второй — frm_kota.
  • Когда пользователь выбирает элемент из frm_provinsi, он вызывает Ajax с идентификатором из frm_provinsi
  • Результат заполняется в $formData и сохраняется в переменной Smarty с именем $daftarKota
  • $daftarKota заполняется в
Аякс

Код: Выделить всё

$('#frm_provinsi').on('change', function() {
var nilai = $(this).val();
console.log(nilai);

if (nilai !== '') {
event.preventDefault();
$.post({
type: 'POST',
url: '',
data: $.param({ frm_provinsi: nilai }),
success: function(respon) {
document.getElementById("frm_kota").innerHTML = respon;
},
//contentType: 'application/x-www-form-urlencoded',
cache: false,
})
.done(function(respon) {
console.log(respon);
// Tampilkan hasilnya di halaman web
$('#frm_provinsi').html('Provinsi: ' + respon.nama_provinsi);
})
.fail(function(xhr, status, error) {
console.log(xhr.responseText);
});
} else {
console.log('Nilai tidak boleh kosong');
}
});
PHP

Код: Выделить всё

if (isset($_POST['frm_provinsi'])) {
$smarty->assign('prov', $_REQUEST['frm_provinsi']);
$GetDaftarKota = DB::query("SELECT id_kemendagri, nama_kota FROM `kota` WHERE LEFT(id_kemendagri, 2) = '".$_POST['frm_provinsi']."'");
//print_r ($GetDaftarKota);
$FormData = NULL;
foreach($GetDaftarKota as $me) {
$FormData .= "".$me['nama_kota']."\n";
}
$smarty->assign('daftarKota', $FormData);
Здесь представлены элементы frm_provinsi

Код: Выделить всё


Aceh (NAD)
Sumatera Utara
Sumatera Barat
Riau
Jambi
Sumatera Selatan
Bengkulu
Lampung
Kepulauan Bangka Belitung
Kepulauan Riau
DKI Jakarta
Jawa Barat
Jawa Tengah
DI Yogyakarta
Jawa Timur
Banten
Bali
Nusa Tenggara Barat (NTB)
Nusa Tenggara Timur (NTT)
Kalimantan Barat
Kalimantan Tengah
Kalimantan Selatan
Kalimantan Timur
Kalimantan Utara
Sulawesi Utara
Sulawesi Tengah
Sulawesi Selatan
Sulawesi Tenggara
Gorontalo
Sulawesi Barat
Maluku
Maluku Utara
Papua
Papua Barat
Papua Selatan
Papua Tengah
Papua Pegunungan
Papua Barat Daya
По умолчанию frm_kota пуста, как показано здесь И когда выбран один из элементов frm_provinsi, он вызывает Ajax и успешно загружает frm_city и заполняется в frm_kota

Код: Выделить всё


Tapanuli Tengah
Tapanuli Utara
Tapanuli Selatan
Nias
Langkat
Karo
Deli Serdang
Simalungun
Asahan
Labuhanbatu
Dairi
Toba
Mandailing Natal
Nias Selatan
Pakpak Bharat
Humbang Hasundutan
Samosir
Serdang Bedagai
Batu Bara
Padang Lawas Utara
Padang Lawas
Labuhanbatu Selatan
Labuhanbatu Utara
Nias Utara
Nias Barat
Kota Medan
Kota Pematangsiantar
Kota Sibolga
Kota Tanjung Balai
Kota Binjai
Kota Tebing Tinggi
Kota Padangsidimpuan
Kota Gunungsitoli
Проблема в том, что браузер отображает для элемента frm_kota комбинацию frm_provinsi + frm_kota (пожалуйста, проверьте скриншот, потому что я не могу воспроизвести это в коде)
Изображение

Как вы можете видеть в коте/ кабупатен после Папуа Барат Дайя, которое является именем провинции и должно быть членом frm_provinsi, а после него следует Тапанули Тенга и т. д., который является правильным членом. frm_city

Подробнее здесь: https://stackoverflow.com/questions/793 ... tp-request
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»