-2

こんにちは、次の問題があります。javascriptでデータベースからクエリしたデータにアクセスしてから関数を実行しようとしています

<?php

    $sql_sp1 = "{call [IR_CMS].[dbo].[usp_GetPropertyPriceAndAvail](?,?)}";
    $params = array( array($ChaletID, SQLSRV_PARAM_IN),
    array($BoardBasisID, SQLSRV_PARAM_IN));
    $result_sp1 = sqlsrv_query( $conn, $sql_sp1, $params);
    if( $result_sp1 === false)
      {
        echo "2. Get property price and avail - Error in query preparation/execution.\n";
        die( print_r( sqlsrv_errors(), true));
       }
    $data_sp1 = array(); 
    while($row_sp1 = sqlsrv_fetch_array($result_sp1, SQLSRV_FETCH_ASSOC)) {
    $data_sp1[] = $row_sp1;

   }
     //echo '<pre>';
     //print_r($data_sp1);
     //echo '</pre>';

?>
<script>

availdata = <?php echo json_encode($data_sp1); ?>;

</script>

データをエコーすると、次のようなものが生成されます

[{"PropertyID":138,"PropertyName":"Yves","ShowAvail":"Y","PropertyStartDateID":509495,"StartDate":"2012-12-08","DurationDesc":"7 泊" ,"Saving":null,"Price":null,"Avail":"4","LiveSeason":1,"SeasonDesc":"2012-13","BoardBasisDesc":"Catered","PropTypeDesc":" Chalet Hotel","ResortName":"Les Arcs","CountryDesc":"France","FTA":"FTA","Sole_Use":0,"IsInShorlist":0}];

しかし、JavaScriptでアクセスできません。データをコピーしてJavaScriptに直接貼り付けると機能しますが、動的にアクセスしようとすると機能しません。はい、私は自分の研究を行いました。これがうまくいくはずだと確信しています。

4

2 に答える 2

0

あなたのコードはうまくいくはずです。これをデバッグして問題を解決する最も簡単な方法は、HTML ソースを表示することです。

ページをロードし、右クリックして「ページのソースを表示」を選択するだけです。

私の推測では、encode_jsonそれはあなたが思っていることを再現していないということです.おそらく、無効なJSONまたはあなたが期待したもの以外のJSON構造を作成します.

ここに HTML をコピーして貼り付けると、簡単にサポートできます。

また、開発者ペインを開いた状態 ( F12 または ) で "chrome" を使用することをお勧めしctrl+shift+jます。これにより、すべての JavaScript エラーがすぐに表示されます。

あなたがFirefoxを好むなら、firebugが道です。Explorer には、F12 で使用できる開発者用ペインもあります。

アクセスするコードをデバッグしてみてください- アクセスする前にavaildata書くだけです。開発者ペインが開いていることを確認し、リリース前にdebugger;必ず削除してください。debugger;

これらの手順は、問題を迅速に解決するのに役立ちます。または、少なくともより多くの情報を提供してください。何か進展があれば教えてください。

于 2012-06-18T14:24:24.370 に答える
0

これを試して:

JSON.parse(your_data);

于 2012-06-18T10:30:32.050 に答える