2012-05-11 6 views
0

私は別のページからいくつかの動的なデータを持つ選択テキストボックスを設定したいと思います。このページは、json_encodeを使用してphp配列を出力します。これは同じサイトの別のページで問題なく動作していますが、何らかの理由でChromeとFirebugのコンソールで「500(内部サーバーエラー)」と表示されます。私自身がページを参照すると出力が正常に表示されますが、JSONがアクセスできないリンクを開いたときにURLが正しいことを確認しました。 私の要求がある:動的ページからJSONリクエストエラー500

var Type = $("#a option:selected").text(); 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    dateChangeRequest=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    dateChangeRequest=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
dateChangeRequest.onreadystatechange=function() 
    { 
    if (dateChangeRequest.readyState==4 && dateChangeRequest.status==200) 
     { 
     var returnList = dateChangeRequest.responseText; 
     } 
    } 
dateChangeRequest.open("GET","entList.php?ents="+Type,true); 
dateChangeRequest.send(); 

いくつかの例のデータは:

[{"EntID":2,"Display":"Some Name - Alias"},{"EntID":3,"Display":"Some Other Name - Another Alias"}] 

私はそれが何を意味かどうかわからないんだけど、働いて放火犯のレポートですページ

Connection Keep-Alive 
Keep-Alive timeout=15, max=90 

しかし、このページには報告します。

Connection close 

でも、要求ヘッダーはキープアライブを要求します。 ご協力いただければ幸いです。

実際に、そのサンプルデータをページに配置するだけで、うまくフェッチされます。私はデータベースからデータの配列を生成して、別のページでうまく動作しているjson_encodeで出力しています。ここではページの実際の出力からの抜粋です:

[{"EntID":2,"Display":"Eddard Stark - Ned"},{"EntID":3,"Display":"Robb Stark - The Young Wolf"},{"EntID":5,"Display":"Catelyn Tully - Cat"},{"EntID":7,"Display":"Aegon I Targaryen - Aegon the Conqueror"},{"EntID":20,"Display":"Rhaenyra Targaryen - "},{"EntID":11,"Display":"Aenys I Targaryen - "},{"EntID":12,"Display":"Maegor I Targaryen - "},{"EntID":13,"Display":"Jaehaerys I Targaryen - "},{"EntID":14,"Display":"Viserys I Targaryen - "},{"EntID":15,"Display":"Aegon II Targaryen - "},{"EntID":16,"Display":"Rhaenys Targaryen - "},{"EntID":17,"Display":"Visenya Targaryen - "},{"EntID":74,"Display":"Jon Snow - Lord Snow"}] 

いくつかの詳細情報: データが静的であるとき、それはつまり、私はコピーして、テキストとしてページ上に配列全体を貼り付けると、すべてをコメントアウトし、正常に動作しますデータ。 私は実際には、サーバーがエラー500と言っても、クロムコンソールの応答テキストを見ることができます。 json_encodeの代わりに自分自身で配列の構造をエコーし​​てみましたが、どちらも動作しません。

+0

jquery 'var Type = $("#a option:selected ")。text();'を使用しているコードを見てください。それで、なぜあなたはそれを使わなかったのですか?よりシンプルになります。 –

+0

私は実際に始めましたが、私はこのバージョンを持っていたのと同じように、以前は使っていませんでした。それも500エラーを投げたので、私が知っているこの方法に戻って戻ってきました。 –

+0

かなり確かです。任意の可能なURLパラメータを持つページへの私のブラウザに私はポストのようにデータの配列を取得します。配列は提供されている例よりはるかに長いです。最初は私はそれが思っていたのはIDの周りに引用符を取得していたが、JSON_NUMERIC_CHECKはそれを変更しましたが、私はまだ500のエラーがあります。 –

答えて

0

PHPページのバグである可能性があります。エラー報告はありますか?そこにあなたの答えが見つかるかもしれません。

は、コマンドラインへのアクセスを持っていないと見て

tail -f /var/log/apache/php.errors 

を使用してサーバー上のエラーログを見てみ、あなたの.phpファイルの先頭に

error_reporting(E_ALL); 

を追加します。

+0

私はそのコマンドをどこに置くのですか?私は、私が知っているコマンドラインへのアクセス権を持っていません。 –

+0

どこにエラーが表示されることはありません。データを含むページがまだ正しい配列を出力していて、表示したいページにもエラーはありません。私はその行を両方のページの上部に置いています。 –