我正在创建一个表单,用户必须从选择字段中选择其国家/地区和城市,该字段会根据所选的实际国家/地区进行动态更新。但是,当提交表单时,除了城市之外,所有内容都会成功保存。
我正在使用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,我将数据保存到会话变量。有更多的投入,不仅仅是国家和城市,除了我提到的城市外,它们都得到了成功的保存。
我无法弄清问题是什么。我没有包含所有代码,也许还有别的东西可能导致问题,但如果有人能在这里找到它我会放心。
答案 0 :(得分:0)
你需要写,
$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;