为什么我的程序在我的测试环境中工作,而不是我的实时站点


why is my program working in my test environment but not my live site?

我有一个非常奇怪的问题,我真的可以使用一些见解。 我有一个在我的测试环境中完美运行的网站。 这是在我的服务器上,该程序用于库存,它允许用户选择货架位置,然后按货架区域缩小范围。 同样,这在测试环境中完美运行。 我还有一个实时环境,在这个完全相同的站点将无法正常工作,当我运行 Firebug 时,我一直得到 data.id 未定义。 真正奇怪的是,当我将console.log(data)添加到我的ajax成功函数时,它向我显示了所有数据。 我也为测试环境做了这个,我看到的唯一区别是它将所有 id 组合在一起,然后是位置。 在实时环境中,它显示id=1,位置=

1,id= 1,2位置= 1,2等,在测试环境中显示id=1,2,3等位置= 1,2,3等。

为什么要这样做????

我不确定您可能需要查看代码的哪些部分来帮助解决此问题,但我可以发布您需要查看的任何内容。

编辑:这只发生在一个 Ajax 调用上,所有其他调用都正常工作。 域名是相同的,除了一个有testbco,另一个只是因为。 下面是 ajax 调用的代码:

// 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:我不知道这是否有帮助,但这是区域.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);

听起来 area.php 返回数据的方式不同。确定 PHP 文件在实时服务器上是最新的吗?

事实证明,在 area.php 文件中,我不需要使用 array_push 函数:

array_push($return_arr,$location);

当我将其更改为仅返回$location时,:

echo json_encode($location);

一切正常。 感谢大家的帮助。