我正在创建一个表单,其中用户必须从选择字段中选择他们的国家和城市,该字段将根据实际选择的国家动态更新。但是,当提交表单时,除城市之外的所有内容都将被成功保存。
我使用的是jquery select2和jquery验证插件,我认为它们可能会导致问题。
下面是主要代码:
$('#country').select2().change(function() {
$("#city").select2('data', null);
$.ajax({
type: 'post',
url: 'search_city.php',
data: 'country=' + $(this).val(),
dataType: 'html',
success: function(response) {
$('#city').html(response);
}
});
});和
<label>* City:</label>
<select id="city" name="property_city" required>
<option></option>
</select>这是search_city.php
echo '<option></option>';
while($city = mysqli_fetch_object($cities)) {
if($_SESSION['property_city'] == $city->id) {
echo '<option selected value="'.$city->id.'">'.$city->name.'</option>';
} else {
echo '<option value="'.$city->id.'">'.$city->name.'</option>';
}
}提交表单后,运行一个验证php,将数据保存到会话变量中。除了我提到的城市之外,还有更多的输入,不仅仅是国家和城市,它们都被成功地保存了下来。
我不知道问题出在哪里。我没有包含所有的代码,也许其他东西会导致这个问题,但是如果有人能在这里找到它,我会松一口气。
发布于 2014-03-05 18:42:43
你需要写,
$html = '<option value=""></option>';
while($city = mysqli_fetch_object($cities)) {
if($_SESSION['property_city'] == $city->id) {
$html .= '<option selected value="'.$city->id.'">'.$city->name.'</option>';
} else {
$html .= '<option value="'.$city->id.'">'.$city->name.'</option>';
}
}
echo $html;https://stackoverflow.com/questions/22194963
复制相似问题