我的问题是选项价值是什么
<option selected="selected" disabled="disabled">Select a city...</option>
问题是:尽管此选项没有任何价值,但PHP代码将其值视为 *'选择城市'* 。所以,即使没有选择城市,我的代码if(isset($_POST['city'])
也会一直返回。我该如何解决这个问题?
这是 html 代码:
<form id="city_form">
<select id="city" name="city">
<option selected="selected" disabled="disabled">Select a city...</option>
<option value=1 name="city1">City 1</option>
<option value=2 name="city2">City 2</option>
<option value=3 name="city3">City 3</option>
<option value=4 name="city4">City 4</option>
</select>
<input type="submit" value="Submit form" id="submit_button" />
</form>
<div id="show_city"></div>
以下是 jquery 代码:
$('#submit_button').click(function(e) {
e.preventDefault();
var data = $('#city_form').serialize();
$.post(
"fetch_city.php",
data,
function (response) {
$('#show_city').html(response);
}
);
});
这是 fetch_city.php :
if (isset($_POST['city']) && !empty($_POST['city'])) {
$city_id = $_POST['city']);
echo $city_id;
} else {
echo "You did not select a city...!";
}
答案 0 :(得分:4)
你做不到。给它一个有意义的标记value
,如果该值出现,则忽略控件。
<option selected="selected" disabled="disabled" value="">Select a city...</option>
答案 1 :(得分:0)
我认为这里的答案是jquery忽略第一个选项上的禁用。尝试从中删除selected =“selected”和disabled =“disabled”。您现在将看到一个空白的第一个条目。提交表单时,您的isset应返回false。