-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 回答