2012-06-11 42 views
0

我有一個非常奇怪的問題,我可以真正使用一些洞察力。我有一個在我的測試環境中完美運行的網站。這是在我的服務器上,該程序用於庫存,它允許用戶選擇一個貨架位置,然後通過貨架區域縮小它的位置。再次,這在測試環境中完美工作。我也有一個現場環境,在這個完全相同的網站將無法正常工作,我不斷運行Firebug data.id是未定義的。奇怪的是,當我將console.log(data)添加到我的ajax成功函數中時,它向我顯示了所有的數據。我也爲測試環境做了這些,我看到的唯一區別是它將所有的ID分組在一起,然後將這些位置分組。在實況環境中,它在測試環境中顯示id = 1,location = 1,id = 1,2位置= 1,2等,顯示id = 1,2,3等位置= 1,2,3等。爲什麼我的程序在我的測試環境中工作,但不是我的現場網站?

爲什麼這樣做?

我不確定代碼中哪些部分可能需要查看以幫助解決此問題,但我可以發佈您需要查看的任何內容。

編輯: 這隻發生在一個ajax調用,所有其他工作正常。域名是一樣的,只有一個有testbcos,另一個只是bcos。這裏是阿賈克斯調用的代碼:

// Inventory verification section 
$("#area").change (function(){ 
$("#acctRecords tbody tr").remove(); 
$('#label').show(); 
$('#label2').show(); 
$('#location').show(); 
$('#section').show(); 

$.ajax({ 
    type: "POST", 
    async: true, 
    url: "area.php", 
    dataType:"json", 
    data: ({area: $('#area').val()}), 
    success: function(data) { 
       console.log(data); 
    $('select#location').empty(); 
    $('select#location').append('<option value="0">Select Option</option>'); 
    $('select#section').empty();  
    $('select#section').append('<option value="0">Select Option</option>'); 

    //Populate options of the second dropdown 
      for(var x=0;x<data.location.length;x++) 
       {  
       $('select#location').append('<option value="'+data.id[x]+'">'+data.location[x]+'</option>'); 
     $('select#section').append('<option value="'+data.id[x]+'">'+data.location[x]+'</option>'); 
      } //end of each function 

這是與現場和測試環境完全相同的代碼。

編輯#2:我不知道這是否有幫助,但這裏是area.php文件。

$conn = db_connect(); 
session_start(); 
$area = $_POST['area']; 
$x = 0; 
$return_arr = array(); 

$result = $conn->query ("SELECT location_id, location FROM location where location like '$area%' ORDER BY location"); 

      $num_rows = $result->num_rows; 

if($num_rows > 0) 
{ 
      while ($row = $result->fetch_assoc()) 
      { 
       $idArray[$x] = $row['location_id']; 
       $locationArray[$x] = $row['location']; 
       $x++; 

      $location = array('id' => $idArray, 
       'location' => $locationArray 
       ); 

      array_push($return_arr,$location); 
      } 

} 

$conn->close(); 

echo json_encode($return_arr); 
+1

一切還在同一個域上嗎? –

+0

在現場環境中一定有不同的東西。沒有更多信息例如。代碼我們無法幫助。 – powtac

+1

這是發生在特定頁面還是AJAX請求上,還是全部失敗? – Limey

回答

0

事實證明,在area.php文件,我並不需要使用array_push功能:當我把它改爲只返回$位置

array_push($return_arr,$location); 

,:

echo json_encode($location); 

一切正常。感謝所有的幫助。

0

聽起來像area.php以不同的方式返回數據。確保PHP文件在活動服務器上是最新的?

+0

我使用完全相同的文件,它所做的只是將它上傳到測試文件夾中的活動文件夾 – Jim

+0

你檢查了ajax在螢火蟲響應?將它從兩個環境複製到winmerge或類似的。如果有差異,那麼問題是PHP,如果不是,那麼它是用Javascript。 – SystemicPlural

相關問題