• ベストアンサー

javascriptの配列をPHPで読み込みたいのですが・・・

javascriptの配列を記述してあるファイル info.js があるとします data = new array(); data[0] = new array("data1","data2","data3"); data[1] = new array("data1","data2","data3"); data[2] = new array("data1","data2","data3"); ・ ・ ・ 上記の文で書かれた配列データを、PHP上で読み込み、新着一覧のような形でhtmlで表示したいのですが、方法が分かりません。 分かる方がいらっしゃいましたら教えて下さい。

  • PHP
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • mpx
  • ベストアンサー率71% (149/209)
回答No.2

phpに送信するにはPOSTなどの操作が要りますが、 formを利用した例が下記になります。 php側では、$_POST['data']に配列として取得できます <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- data = new Array(3); data[0] = new Array("data1","data2","data3"); data[1] = new Array("data1","data2","data3"); data[2] = new Array("data1","data2","data3"); function mkinput(){ for(var i=0; i < data.length;i++) for(var j=0; j < data[i].length;j++){ make_hidden('data',i,j,data[i][j],'myform'); } } function make_hidden(name,i,j,val,fn){ var q = document.createElement('input'); q.type = 'hidden'; q.name = name+'['+i+']['+j+']'; q.value = val; document.forms[fn].appendChild(q); } // --> </SCRIPT> </HEAD> <BODY onLoad="mkinput()"> <form name="myform" method="post" action="hogehoge.php"> <input type="submit" > </form> </BODY> </HTML>

kadohisa
質問者

お礼

非常に参考になるソースの提供ありがとうございました。 解決できそうです。

その他の回答 (1)

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.1

PHPはサーバーサイドで動く。 JavaScriptはブラウザ上で動く。 つまり、PHPが動いているときはJavaScriptは動けないし。 JavaScriptが動いているときはPHPは動けない。 どうしてもやりたいっていうのであれば、非同期通信してPHP側(HTTP等で)にJSON投げればいいだけ。 って、新着一覧ならJavaScriptでやればいいだけでは? なぜ JavaScriptでデータを持っているのにPHPにやらせたいの?そのままJavaScriptで処理して表示させたほうが手っ取り早いし、スマートだよ。

kadohisa
質問者

お礼

素早い回答ありがとうございます。 携帯ページに表示させるため、JavaScriptは動かないと思い、 どうにか表示させれないかと。 すみません、説明が不足していました。

関連するQ&A

  • PHPの配列をjavascriptへ渡したい

    PHPの配列をjavascriptの配列に渡したいのですがやり方がわかりません。 変数の渡し方ならわかるのですが配列はどう渡せばいいのでしょうか? for文を使って渡せばいいと思うんですがどうやればいいか分かりません。 <?php $filedata=file("data.txt");//javascriptに渡したい配列 ?> <script language="javascript"> var a=new Array();//PHPの配列をこの配列に入れたい </script> 何方か教えてください。

    • ベストアンサー
    • PHP
  • PHP配列をJavaScriptに渡したい

    全くの初心者です。 PHPファイルのなかで外部のテキストファイルから読み込んだデータ$listをJavaScriptの配列に変換したいのですが、分かりません。よろしくお願いします。 JavaScriptが外部のデータを読み込めないなら、いったんPHPでオプションメニューに書き込んだあと、これをJSで配列に取り込むことも考えたのですが、これもオプションメニューの各アイテムをどうしたら読み取れるのかが分かりませんのであきらめたしだいです。 <?php $file = fopen("GermJ.txt","r"); $list = file('GermJ.txt'); fclose($file);  $max=count($list); ?> <SCRIPT type="text/javascript"> <!-- var jsArray; // グローバル宣言 function Arraycreate() {  jsArray = new Array($max);  //$max をこうすることは可能ですか?  for (i = 0; i <= $max-1; i++) { jsArray = $list[i];???????? (分かりません) } } // --> </SCRIPT>

    • ベストアンサー
    • PHP
  • 連想配列(PHP 対 JavaScript)

    こんにちは。質問をさせてください。 PHPでOracleのデータを取得してそのデータを連想配列に格納するとします。 /------- PHP内でのソース -----------------/ (例) $Count:検索データ数  for($cnt=0;$cnt<$Count;$cnt++){ $data[$cnt] = "取得したデータ";  Fech(次のレコードを取得する); } 上記で取得した連想配列の値をJavaScriptでしようしたいのですが うまくいきません。 JavaScriptではArrayに取得したデータを格納したいのです。 (例) /-- JavaScript内のソース Afor2=new Array("取得data1","取得data2",・・・"最後の取得data"); としてHTMLの何かのイベント時にしようしたいと考えています。 今僕は以下のような動きをしたいです。 /----以下、JavaScriptでの記述-----------------/ var New_Array=new Array(5); for(i=0;i<<?=$Count?>;i++){ document.form.cmb_box.options[i] = new Option(<?=$data[i]?>, i); } のようなことをしたいのですが。 (もちろん上記はだめですが・・・) 質問がわかりにくくて大変もうしわけありませんが、 アドバイス、質問などよろしくお願いいたします。

    • 締切済み
    • PHP
  • JavaからJavascriptの配列を出力したい

    JavaからJavascriptの配列を出力したいのですが、 appendした要素を区切り文字で区切って返す方法が わかりません。 <% StringBuffer js = new StringBuffer(); js.append("1"); js.append("2"); %> Javaで↑のように格納した後に、 下記のようにJavascriptの配列を出力したいです。 if(a = 1){ val=new Array("1,"2"); }

  • PHPのようにスマートに配列の配列など記述する方法が

    PHPの場合、データ構造ですが以下のようになっています。 $a = array( "test1" => array( array(1,1), array("x", 2) ), "test2" => array( array(3,2), array("y", 1) ), ); これをエクセルVBAの場合、Scripting.Dictionaryを使えば連想配列が 可能ですが、PHPのようにスマートに配列の配列など記述する方法が わかりません。 Dim dic As Scripting.Dictionary set dic = New Scripting.dictionary dic.Add "test1", ???????????????? dic.Add "test2", ???????????????? スマートにデータ構造を実現できる方法が知りたいです。

  • phpからas3へ配列の渡し方を教えてください。

    phpからas3へ配列の渡し方を教えてください。 ActioScript3.0からphpへ変数を渡し、phpでsqlによって得たデータを配列に格納し、その配列をas3へ渡そうと思っています。 変数だと以下記述で実現できましたが、もしsqlが複数件取得した際には対応できていません。 ■php側からas3へ変数を渡す箇所 echo "comp=".$teamname; ■as3側の受け取り箇所 function getTeamInfo(event:Event):void { var team_info:URLVariables=new URLVariables(event.target.data); st_team=team_info.comp; } 以上、よろしくお願いします。

    • ベストアンサー
    • Flash
  • PHP二次元配列をJavaScript配列へ変換

    PHPの二次元配列データを、JavaScriptの二次元配列データとして使用したいのですが、どうやって変換すればよいでしょうか?

    • ベストアンサー
    • PHP
  • javascript初心者です

    javascript超初心者です 配列を作る方法を教えてください new Array()で作らなくても下記のような記述だけでも配列をつくることができるんでしょうか? ["文字1", "文字2", "文字3"];

  • jsファイルで配列を定義し、jsファイルを切りかえて使う

    お世話になります。 jsファイルで配列を定義し、その配列の内容を表示しています。 いくつかのjsファイルで配列を定義し、そのjsファイを切りかえることにより、表示する配列の内容を切りかえることはできないでしょうか。 例えば data_a.js DataAry = new Array( new WNData('2006/11/10','ああ','・・.html'), new WNData('2006/11/10','いい','・・.html'), ・・・・・ ); data_b.js DataAry = new Array( new WNData('2006/11/10','aa','・・.html'), new WNData('2006/11/10','bb','・・.html'), ・・・・・ ); dspDataAry.jsで function WNData(Date,Cmnt,Href,Target){ this.Date=Date; this.Cmnt=Cmnt; this.Href=Href; } function DspData(){ strhtml="・・・・ (DataAryを表示するhtmlを作成) return strhtml; } dspDataAry.htmlで <script type='text/javascript' src='dspDataAry.js'></script> <script type='text/javascript' src='data_a.js'></script> <body> <script type='text/javascript'><!-- document.write DspData(); //--> </script> <input id="btn_b" type="button" value="bを表示" onClick="bを表示する関数"<br> </body> とすれば、data_a.jsの配列の内容が表示されます。 ボタン「bを表示」を押すことにより、 data_b.jsを読み込んで、その内容を表示するようにできないものでしょうか。 onClick="bを表示する関数"この「bを表示する関数」をいう関数をどのように書いたらよいのかわかりません。 data_a.js、data_b.jsで定義する配列名は同じとします。 data_c.js、data_d.js・・・といくつかに分けたく思っています。 前もってdata_b.jsを読み込むのでなく、必要に応じて読み込んで表示するようにしたいのですが。 よろしくお願いいたします。

  • javascript 連想配列

    初めて連想配列で処理を行っております。いろいろグーグル等で調べましたが、どうしてもできないので、ご教授頂けますでしょうか。 phpからjavascriptにデータを渡し、連想配列化する必要がありまして、以下の通りにやってみました。配列化は自動化したく、for文でこのようにしてみました。phpの大部分は少々長いので省きますが、ざっとこんな感じです。 var place = <?PHP echo $place ?>; //東京、大阪、名古屋 var address = <?PHP echo $add ?>; //東京都、大阪府、名古屋市 var Data = new Array();   for(i=0;i<place.length;i++){ Data[i].push({add1:place[i] , add2:address[i]});   } alert(Data[0]); ------------------------------- 上記の方法ですと、placeとaddressには正しく値はphpから渡されるのですが、肝心なDataはなにも出力されません。エラーもなく、まっさらです。 理想系は、以下の方法の通りにしたいと思っております。 下記はフリーウェアの中身を今回の案件に手直ししたものです。 Data = [{  add1: "東京",  add2: "東京都" }, {  add1: "大阪",  add2: "大阪府" }, {  add1: "名古屋",  add2: "名古屋市" }]; この場合と同じ結果が出力されれば完成なのですが・・・ 例えば、Data[0]をalertすると、「object object」と出力されます。 現在は3件で開発を行っておりますが、今後はどんどん増えていくので、自動化させるためにfor文か、for in文を使ったほうがいいのかな と思っているのですが、力及ばず詰まっております。 どうかお助けください。 よろしくお願い致します。