Hiển thị dữ liệu kết quả biểu mẫu web trong Biểu đồ Google


11

Tôi đang cố gắng hiển thị kết quả biểu mẫu web dưới dạng Biểu đồ của Google . Tôi đang làm điều này trên lớp chủ đề bằng cách ghi đè theme_webform_results_analysis () trên tệp template.php của chủ đề của tôi và sử dụng mô-đun Biểu đồ . Drupal 6.22, Webform 6.x-3.11.

Trang phân tích biểu mẫu web thường hiển thị dữ liệu trong một bảng, vì vậy tôi đang cố gắng tách các mảng cho bảng đó để chuyển nội dung vào API Biểu đồ .

EDIT : Tôi đã tìm ra cách sử dụng var_dump và thấy rằng cách tiếp cận tốt hơn có thể là tách riêng các mảng $ row_data và $ câu hỏi (thay vì sử dụng mảng $ rows mà tôi có trong phiên bản đầu tiên của câu hỏi này, đó là một mashup của cả hai mảng).

EDIT # 2 : Tôi nghĩ rằng tôi đã khám phá ra cách lấy từng phần của các câu hỏi $ ban đầu và các mảng $ row_data (xem bên dưới - hướng dẫn trong các hướng dẫn khác). Vì vậy, bây giờ tôi cần phải đưa các phần đó vào các mảng thích hợp (1 cho mỗi câu hỏi) và tìm cách lặp lại tất cả các phần đó.

Đây là những gì tôi đã có trong template.php:

/**
 * Output the content of the Analysis page.
 * @see webform_results_analysis()
 */
function mytheme_webform_results_analysis($node, $data, $sids = array(), $analysis_component = NULL) {

  foreach ($data as $cid => $row_data) {

    if (is_array($row_data)) {

      // get the questions, put them in an array
      $questions = array();
      $questions[] = array('data' => check_plain($node->webform['components'][$cid]['name']));

      // this will print everything out in the right order - it really needs to
      // make an array for each question that looks like $test_chart below
      foreach ($questions as $question) {
        print $question['data'] . '<br />'; // questions 
        foreach ($row_data as $key => $value) {
          print $value[0] . '<br />'; // labels
          print $value[1] . '<br />'; // results 
        }
      }

      // Set up the chart
      $chart = array(
        '#chart_id' => 'webform_analysis',
        '#type' => CHART_TYPE_PIE_3D,
        '#size' => chart_size(658, 250)
      );

      // not real data here, this just shows the format I'm shooting for
      $test_chart = array(
        'option 1' => '12',
        'option 2' => '45',
        'option 3' => '122'
      ); 

      // separate the above array into labels and values, add a percentage to the label
      foreach ($test_chart as $key => $value) {
        $chart['#data'][] = $test_chart[$key];
        $chart['#labels'][] = strip_tags($key) . ' (' . round($test_chart[$key], 2) .  '%)';
      }
      // pick some colors
      $chart['#data_colors'][] = 'b0c73d';
      $chart['#data_colors'][] = '667323';
      $chart['#data_colors'][] = '221f1f';

      $output = chart_render($chart);    
    }
  }

  if (count($row_data) == 0) {
    $output = t('There are no submissions for this form.');
  }

  // return the data that goes into chart function, just for testing
  // return $chart_data; 

  // someday, this might return a set of webform charts. right now it returns the fake test chart
  // return $output;
}

1
bạn đã giải quyết câu hỏi của riêng bạn. Nếu vậy hãy đăng câu trả lời của riêng bạn
iStryker

Không, tôi chưa tìm ra điều này. Bây giờ tôi đang chờ cho đến khi tôi đọc xong "Bắt đầu PHP và MySQL5: từ người mới đến chuyên nghiệp" ( liên kết ), và sau đó tôi sẽ cho nó một cảnh quay khác. Tôi đã nhận được sự giúp đỡ trực tuyến, vì vậy tôi nghĩ rằng tôi chỉ cần xử lý tốt hơn các nguyên tắc cơ bản trước khi thử một thứ gì đó khó khăn này.
Sarah Đức

Câu trả lời:


2

Có một mô-đun biểu đồ Drupal khác cung cấp hỗ trợ cho các biểu mẫu web: http://drupal.org/project/fusioncharts

Fusionchart có một mô-đun nhỏ gọi là fusioncharts_webform


Cám ơn phản hồi của bạn! Tôi đã xem FusionCharts, nhưng nó không phù hợp với dự án của tôi vì nó sử dụng Flash và chúng tôi cần phiên bản trả phí - chúng tôi cố gắng bám sát các giải pháp nguồn mở. Nhưng nó có vẻ tốt, tôi cá rằng giải quyết vấn đề này cho nhiều người.
Sarah Đức

1

Hơn 3 năm sau, tôi biết, nhưng mọi thứ đã phát triển một chút kể từ đó ...

Bằng cách chỉ xem xét tiêu đề của câu hỏi này, người ta có thể muốn giải quyết vấn đề này thông qua mô-đun Biểu đồ ngày nay (mặc dù câu hỏi ban đầu bắt đầu từ Biểu đồ , là một mô-đun khác). Và điều này kết hợp với Biểu đồ Webform hoặc Biểu đồ Webform .

Tùy thuộc vào nhu cầu thực tế của bạn ngày hôm nay, có vẻ như với 2 mô-đun liên quan đến Webform này, có thể đạt được khá nhiều hoạt động xây dựng trang web (có lẽ không cần thêm kỹ năng của nhà phát triển Drupal). Tham khảo dấu đầu dòng 5 trong Mô-đun tạo điều kiện cho biểu đồ thông qua mô-đun Biểu đồ để biết thêm chi tiết về các mô-đun Biểu đồ Webform này (và liên kết đến một cuộc thảo luận thú vị).

Sử dụng So sánh các mô-đun biểu đồ cho các lựa chọn thay thế tiềm năng khác hiện nay (và sẵn sàng để thực sự bối rối về hàng tá mô-đun biểu đồ có sẵn ...).

Xin lưu ý: Tôi là người duy trì (đồng) mới của Biểu đồBiểu đồ , đồng thời là tác giả của So sánh các mô-đun biểu đồ . Tôi đang cố gắng tiếp tục những đóng góp (đáng kinh ngạc) của Quicksketch cho Charts, người cũng là người duy trì Webform và Biểu đồ Webform (với một 's').

PS: Xin lỗi vì tất cả các không gian tên * biểu đồ khó hiểu, tôi đã không phát minh ra chúng ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.