0

私は本当にいくつかの洞察を使用できる非常に奇妙な問題を抱えています。テスト環境で完全に実行されているサイトがあります。これは私のサーバー上にあり、プログラムは在庫用です。ユーザーは棚の場所を選択してから、棚の領域で絞り込むことができます。繰り返しますが、これはテスト環境で完全に機能します。また、これとまったく同じサイトが正しく機能しないライブ環境もあります。Firebug を実行すると、data.id が定義されていません。本当に奇妙なのは、console.log(data) を ajax 成功関数に追加すると、すべてのデータが表示されることです。テスト環境でもこれを行いましたが、唯一の違いは、すべての ID がグループ化され、次に場所がグループ化されることです。ライブ環境では、id=1、location=1、id= 1,2 location = 1,2 などが表示されます。テスト環境では、id=1,2 が表示されます。

なぜこれを行うのですか?

この問題を解決するために、コードのどの部分を参照する必要があるかはわかりませんが、参照する必要があるものは何でも投稿できます。

編集: これは 1 つの ajax 呼び出しでのみ発生し、他のすべては正しく機能しています。ドメイン名は、一方が testbcos で、もう一方が bcos であることを除いて同じです。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:これが役立つかどうかはわかりませんが、ここに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);
4

2 に答える 2

0

area.php が異なる方法でデータを返しているようです。PHP ファイルがライブ サーバー上で最新であることを確認しますか?

于 2012-06-11T13:17:03.383 に答える
0

area.php ファイルでは、array_push 関数を使用する必要がないことがわかりました。

array_push($return_arr,$location);

$location だけを返すように変更すると、次のようになります。

echo json_encode($location);

すべて正常に動作します。助けてくれてありがとう。

于 2012-06-11T15:14:17.243 に答える