ユーザーが選択したときにいくつかのjsonデータを取得し、いくつかのフォームフィールドに入力する小さなajaxスクリプトがあります。
今朝、開発サーバーで ajax を実行したときにエラーが発生したことに気付きましたが、運用側で実行すると機能しました。これは、サーバー間のエラー報告の違いによるものだと推測していますが、その理由はわかりません。
Dev PHP バージョン: 5.3.13 Prod PHP バージョン: 5.3.16
追加の行がデータベースから出てきた場合にのみ設定されていたいくつかの変数へのエラーを追跡しました。1行から3行を取得しています。
最初の行は $array1 に割り当てられ、追加の行は $sec_row[0] および $sec_row[1] として独自の配列に入ります。
$array1 = ('Name'=>'George','Address'=>'52 Smith St',....etc);
$sec_row[0] = ('Alias1'=>'Jorge','Location'=>'SimCity',....etc);
echo json_encode(array('result1'=>$array1,'result2'=>$sec_row[0],'result3'=>$sec_row[1]);
注 $sec_row は、追加の結果が見つかった場合にのみ設定されます。
$sec_row が定義されていないライブ サイトでは、ajax は結果 2 と結果 3 を NULL として返します。しかし、ローカルホストの開発サーバーでは、「未定義のインデックス」($sec_row[0] のみが設定されている場合) または「未定義の変数」($sec_row がどちらも設定されていない場合) エラーが表示されます。
json をエンコードする前に $sec_row を手動で設定してローカルでエラーを修正しましたが、実稼働サーバーではなくローカルでこれを行う必要がある理由がわかりません。
どの設定がこれを引き起こす可能性があるかについての提案はありますか?