2014-12-04 37 views
0

更新動態填充的內容我有一些代碼,填充像這樣:如何使用AJAX

<select class="form-control" name="accommodation_ID" id="accommodation_ID"> 
    <option value="-1">-- Please Select --</option> 
    <?php 
     $AccomodationID = 13; //For testing purposes 
     $accommodation_query = mysqli_query($conn,"SELECT ENTITIES.LastName, 
           ACCOMMODATION.AccomodationID, ACCOMMODATION.PUPoint 
           FROM ACCOMMODATION, ENTITIES WHERE ENTITIES.Entity_ID = 
           ACCOMMODATION.Entity_ID") 
            or die("Error: ".mysqli_error($conn)); 
     while($accommodation_Results = mysqli_fetch_array($accommodation_query)){ 
      if($accommodation_Results['AccomodationID'] == $AccomodationID){ 
       echo '<option selected value="'.$AccomodationID.'">'.$accommodation_Results['LastName'].'</option>'; 
       $PUPoint = $accommodation_Results['PUPoint']; 
      } 
      else{ 
       echo '<option value="'.$AccomodationID.'">'.$accommodation_Results['LastName'].'</option>'; 
      } 
     } 
    ?> 
    </select> 
    <label>Pick Up Point</label> 
    <input type="text" name="PUPoint" readonly value="<?php echo $PUPoint; ?>"> 

此代碼的工作沒有問題,它會檢查數據庫並查找匹配,如果這樣做,設置是所選選項,抓住PUPoint(拾取點)變量並將其存儲在輸入字段中。

我現在的問題是,當我從下拉列表中選擇不同的選項時,拾取點輸入字段不再更新。這是我有什麼,我實現前的工作上面:

j$('select[name=accommodation_ID]').change(function(event) { 
    event.preventDefault(); 
    var accommodationID = j$(this).val(); 
    post_data = {'accommodation_ID':accommodationID}; 
    var data = { 
     "action": "Accommodation_Details" 
    }; 
    data = j$(this).serialize() + "&" + j$.param(data); 

    j$.ajax({ 
     type: "POST", 
     dataType: "json", 
     url: "../include/booking_Modify.php", 
     data: data, 
     success: function(data) { 
      j$('input[name=PUPoint]').val(data["PUPoint"]); 
     }, 
     error: function (request) { 
      console.log(request.responseText); 
     } 
    }); 
}); 

booking_Modify.php

//checks and switch statement related code 

$return = $_POST; 
$return["accommodation_ID"] = $_POST["accommodation_ID"]; 
$return["SQL"] = "SELECT * FROM ACCOMMODATION WHERE AccommodationID = ".$_POST["accommodation_ID"].""; 
$query = mysqli_query($conn,"SELECT * FROM ACCOMMODATION WHERE AccomodationID = ".$_POST["accommodation_ID"]."") 
    or die("Error: ".mysqli_error($conn)); 
$row = mysqli_fetch_array($query); 
$return["PUPoint"] = $row["PUPoint"]; 
$return["json"] = json_encode($return); 
echo json_encode($return); 

我已經做了一些呼應/的console.log,發現它總是通過相同的住宿ID編號(13)到booking_Modify.php。當我現在選擇不同的選項時它不會改變。我不知道是不是因爲現在對選項元素應用了「selected」屬性。任何想法將不勝感激

回答

1

你已經定義了你的$AccomodationID = 13; //For testing purposes之前是在while循環的每個迭代中打印,而不是當前的ID。可能要編寫$accommodation_Results['AccomodationID']作爲選項值。

+0

我的上帝。我覺得很愚蠢。在這附近已經堵塞了近4個小時。不能相信我沒有拿起這個!非常感謝 – 2014-12-04 00:16:34