【问题标题】:How do i populate my recordset into my javascript using php我如何使用 php 将我的记录集填充到我的 javascript 中
【发布时间】:2012-04-14 19:48:24
【问题描述】:

好的,所以我把 ZZZ 放在哪里,它应该重复行中的下一个值...

将值填充到这部分 JAVASCRIPT 中.....

categories: ['<?php echo $row_testresults['date']; ?>', 'ZZZ', 'ZZZ']

我可以让它这样做......在另一个页面上......但我正在尝试让它与一个 javascript 图表一起工作

一些工作的非 JAVASCRIPT 代码............

<?php do { ?><?php echo $row_TestResults['date']; ?><?php } while ($row_TestResults =     mysql_fetch_assoc($TestResults)); ?>
</body>
</html>
<?php
mysql_free_result($TestResults);
?>

【问题讨论】:

    标签: php javascript populate


    【解决方案1】:

    使用json_encode() 将 PHP 对象/数组/字符串转换为有效的 JavaScript。

    【讨论】:

      【解决方案2】:

      您只是希望每一行的日期都在 javascript 数组中吗?您的代码非常接近,但我可能会这样做:

      <?php
      $categories = '';
      while ($row_TestResults = mysql_fetch_assoc($TestResults)) {
          $categories .= (empty($categories) ? '' : "','") . $row_TestResults['date'];
      }
      <script>
      var categories = ['<?= $categories; ?>'];
      </script>
      

      【讨论】:

      • 根据@ThiefMaster,json_encode 可能是将数组返回到您的页面的最佳方式。如果您的结果行中的值不仅仅是日期列,您需要在 PHP 中循环您的集合并构建一个仅包含日期值的数组。然后 json_encode 会给你你的 javascript 数组。
      【解决方案3】:

      试试这个

      <?php
      functin getvalues() {
      
           while ($row_TestResults = mysql_fetch_assoc($TestResults)) {
              echo $TestResults[abc] .", "
           }
      
      }
      
      ?>
      
      
      <script type="text/javascript">
      <?php
      echo "var myCat=[". getvalues() ."]";
      
      ?>
      
      </script>
      

      【讨论】:

      • 请注意,IE 讨厌在 javascript 数组上挂逗号。您的代码将在最终值之后产生一个额外的逗号。
      【解决方案4】:

      我喜欢我在上面看到的内容,但实际上实现它并不容易……尝试抽象出你正在尝试做的两件事。首先,手动编写一个您希望 HTML 看起来如何的示例:

      <script type="text/javascript">
      
      // this is bad javascript, but relevant to his situation
      series: [{
      name: 'Tokyo',
      data: [7.0,6.9,9.5,14.5,18.2,21.5,25.2,26.5,23.3,18.3,13.9,9.6]
      }, {
      name: 'New York',
      data: [-0.2,0.8,5.7,11.3,17.0,22.0,24.8,24.1,20.1,14.1,8.6,2.5]
      }, {
      name: 'Berlin',
      data: [-0.9,0.6,3.5,8.4,13.5,17.0,18.6,17.9,14.3,9.0,3.9,1.0]
      }, {
      name: 'London',
      data: [3.9,4.2,5.7,8.5,11.9,15.2,17.0,16.6,14.2,10.3,6.6,4.8]
      }]
      </script>
      

      我将假设您的数据位于二维数组中。含义 $row_testresults 的形式为$test_results['London']=Array(3.9,4.2,5.7)

      下一个假设:您已经在 $row_testresults 中整理了一些很好的数据。看看这个 sn-p:

      <?
      function multiRow ( $sql ) {
          if( $sql == "" ) return FALSE;
          //echo "<hr>\$sql=$sql<br><pre>\n"; // \$row:
          $Q = mysql_query($sql);
          if( isData($Q) )
          while(  $row[]=mysql_fetch_assoc($Q) ) {
                  ;//print_r( $row );
          }
          if( $row == "" )
                  $rtn_stuff=FALSE;
          else
                  for($i=0; $i<count($row); $i++){
                          if( $row[$i] == "" )
                                  unset($row[$i]);
                  }
          /*?>print_r( $row ): <? print_r( $row ); ?> </pre> <? */
          return $row;
      }?>
      

      如果您执行$row_testresults=multiRow($TestResults) 之类的操作或更改 $testresults 来生成所有这些数据的实际查询...那么我下面的代码会让生活变得更简单:

      现在,将重复的部分放入自己的循环中:

      <script type="text/javascript">
      series: 
      <?php
      $java_data=array();
      foreach( $row_testresults as $city=>$arr ){
          $tmpstr = "{\nname: '$city',\n";
          $tmpstr.= "data: [".implode( ",", $arr )."]\n} ";
          $java_data[]=$tmpstr;
      }
      $java_output="[".implode(", ", $java_data)."]";
      echo $java_output;
      ?>
      </script>
      

      像这样混合语言可能是一种糟糕的形式,但如果你能做到这一点,那就太好了。即使使用 jQuery 和 Ajax 在 Java 中完成所有这些,我个人也遇到了困难,所以由于我对 php 非常熟悉,我将在动态 ajax 调用之前执行上述操作。

      我还发现使用具有出色语法突出显示功能的编辑器也很重要。在 windows 中我使用 psPad,在 gnome 中我使用 Geany。在 KDE 发布 v4 之前,我使用的是 Kate。

      【讨论】:

      • 我认为如果你在上下文中看到它,我正在加载一个图表。 fish.cutewhitecloud.com/graph.php
      • 我正在努力让它工作......哈哈,我的 Mac 上有大约 10 个文本编辑器,我相信其中一个可以工作。
      • 哈哈,太棒了,我知道那种感觉。检查一下:lifehacker.com/5817833/the-best-programming-text-editor-for-mac 关于 php 的另一件事... $row_testresults?为了更好地理解它,请尝试执行 print_r($row_testresults) 和/或 vardump($test_results) 以便更好地了解如何访问数据。这决定了事情的运作方式。看看我在哪里写 $arr?假设数组中的数据本身就是一个数组!如果它是纯文本中的值,那么您不会内爆它,您只需使用文本本身。
      • 我的问题是:&lt;?php do { ?&gt; '&lt;?php echo $row_TestResults['date']; ?&gt;' , &lt;?php } while ($row_TestResults = mysql_fetch_assoc($TestResults)); ?&gt; 这给了我我需要的输出,我可以将它包装在一个函数或变量中,然后尝试将其转换为 json_encode??
      • 再次查看您的源代码,尝试使用我的辅助函数:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-14
      • 2021-06-09
      • 2013-02-11
      • 1970-01-01
      • 2013-09-28
      • 2020-10-11
      • 1970-01-01
      相关资源
      最近更新 更多