• 締切済み

PHPからJavaScriptへのデータ渡しについて

はじめまして。CodeIgniter初心者です。 現在、PHP(CodeIgniter)のコントローラからビューを呼び出し、 PHPからJavaScriptへのデータ渡しの部分で困っております。 大変恐縮ですが、アドバイスいただければ幸いです。 何卒宜しくお願い申し上げます。 下記はコントローラから表示させようとしているビュー(GoogleAPI.php)です。 Google APIで用意されたJavaScript関数にPHPからデータ(<?=$name?>)を セットしてみましたが、本来のデータ(Root)を渡すことができません。 (現状、Google APIのグラフ表示はされておりますが、誤ったデータ(Array)が表示されてしまいます。) -------------------------------------------------------------------------- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset="utf-8" /> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("visualization", "1", {packages:["orgchart"]}); // Set callback to run when API is loaded google.setOnLoadCallback(drawVisualization); // Called when the Visualization API is loaded. function drawVisualization() { // Create and populate a data table. var data = new google.visualization.DataTable(); data.addColumn('string', 'Name'); data.addColumn('string', 'Parent'); data.addRows(10); // Add more data rows and cells here var row = 0; addRow(data, row++, "Apples", "<?=$name?>"); addRow(data, row++, "Braeburn", "Apples"); addRow(data, row++, "Cox", "Apples"); addRow(data, row++, "Golden Delicious", "Apples"); addRow(data, row++, "English", "Golden Delicious"); addRow(data, row++, "French", "Golden Delicious"); addRow(data, row++, "Bananas", "<?=$name?>"); addRow(data, row++, "Caribbean", "Bananas"); addRow(data, row++, "Central American", "Bananas"); addRow(data, row++, "Clementines", "<?=$name?>"); var orgchart = new google.visualization.OrgChart( document.getElementById('orgchartdiv')); orgchart.draw(data, { selectionColor: 'yellow' }); } // Utility function to create new rows in the Datatable function addRow(data, rownum, name, parent) { data.setCell(rownum, 0, name); data.setCell(rownum, 1, parent); } </script> </head> <body> <div id="orgchartdiv" ></div> </body> </html> --------------------------------------------------------------------------

みんなの回答

  • bis_love
  • ベストアンサー率80% (4/5)
回答No.2

連投失礼します。 <? echo $name ?>ではなく、<?php echo $name ?>でした。

yhina999
質問者

お礼

ご回答いただき、有難うございました。 本件はJavaScriptへデータを渡す前の コントローラでのデータ取得にミスがあり、発生しておりました。 その部分を修正し、解決いたしました。 大変お手数をおかけいたしました。

  • bis_love
  • ベストアンサー率80% (4/5)
回答No.1

もしかしたら見当違いかもしれませんが・・ <?=$name?>は短縮型のタグですが、もしかしたらphp.iniでoffに設定されてませんか? 一度<? echo $name?>と書いてみて、動作確認してみてください。 もしそれで動くようなら、 php.iniのshort_open_tagというパラメータがoffになっていないか確認してみてください。

関連するQ&A

専門家に質問してみよう