2012-02-29 8 views
2

私は自分のコードでPHPとJSを使用しています。私の必要条件は、my-sqlデータベースから値を取得し、動的にドロップダウンリストに表示する必要があります。 php(通常のもの)で値を取得します。 私が直面している問題は、PHPコードから値を取得し、json_encodeを使用してJSの配列にアクセスしてエンコードすると、[object Object]のような値が表示されます。json_encodeを使用してjsでphp配列にアクセスする

助けてください。 ありがとうございます。

サンプルコード: -

<?php 
$result=mysql_query("select Location from servicelist")or die (mysql_error()); 
while($row = mysql_fetch_array($result)) 
$output[]=$row; 
    $row=mysql_fetch_assoc($result); 
$output[]=$row; 

?> 
<script language="javascript"> 
function addOption_list(selectbox){ 
<?php echo 'var month='.json_encode($output);?> 

for (var i=0; i < month.length;++i){ 
addOption(document.drop_list.AreaList, month[i], month[i]); 
//Once the value of the area will get selected we will call sub area based 
//on the area selected from the db 
} 
addSubAreaList(); 
} 
+0

生成された私たちを見ますコード(PHP実行後) –

+0

こんにちはJanus、 コード内の編集を確認してください。 –

答えて

0

オブジェクトJavaScriptでは、PHPの "連想配列" に似ています。オブジェクトがあり、それをコンソールに書き込もうとすると、文字列 "[object Object]"に評価されます。適切な文字列表現が必要な場合、JSONはJavaScriptでJSON.stringifyを使用して再度エンコードします。連想配列を返しますmysql_fetch_assoc($result); PHPで

+0

私はvar myJSONText = JSON.stringify(myObject、replacer)を試しました。 その代替人は何でしょうか? そして、私が文字列として代用者を試しても、それは動作しません。 –

+0

代用者はオプションです。https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/JSON/stringifyを参照してください。 –

+0

どうしたらいいですか?ここでJS配列に配列しますか? –

1

ので、JavaScriptで、あなたのmonth変数は形式になります。

var month = [{field: 'value', otherField: 'value'}]; 

あなたのループがゆえのようなものを使用する必要がある:

var areaList = document.drop_list.AreaList; 
for (var i=0, len = month.length; i < len; ++i){ 
    addOption(areaList, month[i].field, month[i].otherField); 
} 
+0

それは働いた.. 私が欠けていた唯一のものは、値をフェッチする必要がある月のフィールドの後の列でした。 ありがとうございます.. –

+0

PHPを再読み込みしても、クエリは1つのフィールドしか選択しないので、 '$ rows = mysql_num_rows($ result);を使用すると簡単になります。 $ output [] = mysql_fetch_result($ result、$ i、0); 'JavaScriptの' month'変数は文字列配列になりますので、あなたは($ i = 0; $ i <$ rows; $ i ++)あなたが元々持っていたJavaScriptを使うことができます。 – steveukx

関連する問題