2012-02-25 35 views
3

私はデータベース駆動型のWebサイト(私はそれをコード化していませんでしたが、いくつかの変更のみ)で作業しています。Internet Explorer 8(IE8)に問題があります。IE8:JavaScriptがnullかオブジェクトエラーではありませんか?

IE9、Chrome、Safari、Firefoxではうまく動作しますが、IE8ではうまく動作しません(間違いなくIE7ではなく)。

問題は、ユーザーが商品検索ページに来たら、ドロップダウンから「カテゴリを選択」をクリックして選択を行い、その選択に基づいて商品がデータベースから取得され、 2番目のプルダウンメニュー。その後、ユーザーは地図上のある地域をクリックし、結果が表示されます。

prod.idがヌルであるかオブジェクトではないというエラーが表示されます(スクリーンショットが添付されています= http://i.stack.imgur.com/MxZ5l.png)。なぜこれが生成されるのか分かりません。 Prod.idがnullではありません。

は、ここに私の.phpページからコードの一部を次のとおりです。http://pastebin.com/VFYcdEqK

ありがとうございました。このリンクをご覧ください!代わりに、このすべての

+3

IEのjavascriptの問題をデバッグする最善の方法は、IEのF12で使用できるjavascriptデバッガを使用することです。デバッガを使用してページを実行すると、このような例外がデバッガにドロップされ、問題の原因となっているコード行を指差し、変数値を調べて何が起こっているかを正確に確認できます。 – jfriend00

+0

私は彼がそれをしたことを理解しています:ペーストビンのコードはエラーのある行を示しています。 – raina77ow

+0

PHPコードではなく、生成されたコード[view source]を表示する方が良いです。そうすれば、ループしているオブジェクトを見ることができます。 – epascarello

答えて

1

echo "var prods = {\n"; 
foreach ($prods as $k => $pl) { 
    echo "\"$k\": ["; 
    foreach ($pl as $p) 
     echo "{\"id\":\"" . $p['id'] . "\", \"name\": \"" . $p['name'] . "\"},"; 
    echo "],"; 
} 
echo "};"; 

はこれを試してみてください:それはあなたの問題を修正する場合

echo "var prods = ".json_encode($prods).";"; 

を参照してください。そうでない場合は、PHPソースではなく、動作するテストページを提供できますか?

+0

これは私の問題を解決しました。ありがとうございました。私は今IE7で新しい問題を抱えています。カテゴリを選択すると、製品のドロップダウンが消えます。私はそれをクリックすることができます(私はそれがどこにあるのか知っていますが、それを見ることはできません)。これに関するアイデア? IE8でこの問題を釘付けにしてくれてありがとう。 – ialphan

+0

更新:カテゴリが選択されている場合、製品は非表示になりますが、カテゴリを再度変更すると製品のプルダウンが表示されます。 – ialphan

+0

別のアップデート:何らかの理由で、選択ボックスのサイズを変更しようとしていました。それは95%のスタイルで、それを同等のpxに変更しました。 – ialphan

関連する問題