Редактировать: Спасибо за помощь всем, я изменил тему, так как я обнаружил, что проблема более специфична для PHP.Выбранная опция не попадает в переменную post
Я новичок в jQuery и Javascript, и я создаю страницу с функцией поиска, которая требует от пользователя ввода региона для получения информации, относящейся к региону. В форме, я включил выпадающее меню:
<select name="region" id="region">
<option selected="selected" value="na">NA</option>
<option value="euw">EUW</option>
<option value="eune">EUNE</option>
<option value="tr">TR</option>
<option value="lan">LAN</option>
<option value="las">LAS</option>
<option value="br">BR</option>
<option value="ru">RU</option>
<option value="oce">OCE</option>
<option value="kr">KR</option>
</select>
Даже если я пытаюсь выбрать другой регион, кроме значения по умолчанию (NA), когда форма представляется, значение для переменной области в $ _POST всегда остается как «na».
Кроме того, у меня есть сценарий, по форме представить:
<script>
$(function() {
$('#myForm').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'redirect.php',
data: $('form').serialize(),
success: function() {
location.reload();
}
});
});
});
</script>
Моя форма:
<form id="myForm">
<li id="search">
<input type="text" name="name" id="name" placeholder="Search Word"/>
<input type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;" tabindex="-1" />
<select name="region" id="region">
<option selected="selected" value="na">NA</option>
<option value="euw">EUW</option>
<option value="eune">EUNE</option>
<option value="tr">TR</option>
<option value="lan">LAN</option>
<option value="las">LAS</option>
<option value="br">BR</option>
<option value="ru">RU</option>
<option value="oce">OCE</option>
<option value="kr">KR</option>
</select>
</li>
</form>
redirect.php
<?php
session_start();
if (isset($_POST['name']) && isset($_POST['region'])) {
$_SESSION['name'] = $_POST['name'];
$_SESSION['region'] = $_POST['region'];
}
if (isset($_POST['name'])) {
$_SESSION['name'] = $_POST['name'];
$_POST['region'] = 'na'; // I think this is where the problem persists
$_SESSION['region'] = $_POST['region'];
}
>
Кажется, что $ _POST ['region'] не установлен. Я включил session_start в оба файла. Любая помощь будет оценена по достоинству. Спасибо.
Вам не нужен JS для этого. Браузер будет обрабатывать это. Как вы отправляете форму? –