2014-03-05 38 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

嘗試向第一個選項添加value =「」,但它沒有解決問題。現在我開始認爲這是使用select2插件的東西。 – Boldizsar