我有一個非常奇怪的問題,我可以真正使用一些洞察力。我有一個在我的測試環境中完美運行的網站。這是在我的服務器上,該程序用於庫存,它允許用戶選擇一個貨架位置,然後通過貨架區域縮小它的位置。再次,這在測試環境中完美工作。我也有一個現場環境,在這個完全相同的網站將無法正常工作,我不斷運行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);
一切還在同一個域上嗎? –
在現場環境中一定有不同的東西。沒有更多信息例如。代碼我們無法幫助。 – powtac
這是發生在特定頁面還是AJAX請求上,還是全部失敗? – Limey