2014-03-05 5 views
0

Я создаю форму, в которой пользователи должны выбирать свою страну и город из поля выбора, которое динамически обновляется в соответствии с выбранной страной. Однако, когда форма отправлена, все успешно сохраняется, кроме города.Не сохраняет данные выбора html из ajax-запроса в сеанс

Я использую 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

Я запускаю сеансы в файле, который содержит форму и сохраняет данные в другом файле php проверки, например: $ _SESSION ['property_city'] = $ _POST ['property_city']; – Boldizsar

+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; 
+0

Пробовал добавить значение = "" к первому варианту, но это не решило проблему. Теперь я начинаю думать, что это что-то с плагином select2. – Boldizsar

Смежные вопросы