• ベストアンサー

php と JavaScript(HTML??)

どうかお願いします。 まず私がやりたい事は、 phpプログラムによってファイル名を入所し、HTMLのコンボボックスとして表示。 それを二つ作る。 その際、一つ目のコンボボックスで選ばれたディレクトリの中に入っているファイルを2つ目のコンボボックスで表示するようにする。 つまり (1)利用者はディレクトリを一つ目のコンボボックスで選択 (2)そのディレクトリに入っているファイル名(TEXTファイル)などを2つ目のコンボボックスで選択 このような事をしたいと考えています。 一つ目のコンボボックスはできました。 しかし、二つ目ができません。 まず私は$dir = opendir("./");としてディレクトリを開いています。 一つ目は上でいいのですが、2つ目が$dir = opendir("./???"); ??の部分に一つ目で選ばれた物を入れなくてはなりません。 しかし、HTMLやJavaScriptからPHPに変数を渡す方法がわからないのでできないんです・・・。。 どのようにしたらよいでしょうか。 長くなりましたがお願いします。

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

  • ベストアンサー
回答No.2

ajax.html --------------------------------------------------- <html> <head> <title>ディレクトリ</title> <script type="text/javascript"> var Obj = false; var loadFlag = 0; var list_len = 1; function changeList() { if (loadFlag) {writeDiv('現在読み込み中です');return false;} loadFlag = 1; var dir = getDirName(); if(!Obj){Obj = getObj();} Obj.open("GET","ajax.php?dir=" + dir,true); Obj.onreadystatechange = getDir; Obj.send(null); } function getDir() { if (Obj.readyState == 4 && Obj.status == 200) { var files = Obj.responseText; if (files) {makeOption(files); } else {alert('ディレクトリがないかファイルが存在しません');return;} loadFlag = 0; } } function getDirName() { return document.dirList.dir[document.dirList.dir.options.selectedIndex].value; } function makeOption(files) { var fileList = files.split("/"); var max = (fileList.length > list_len) ? fileList.length : list_len; for (i = 0; i < max; i++) { if ( i < list_len) { getFormObj().options[i].value = fileList[i]; getFormObj().options[i].text = fileList[i]; } else if (i > fileList.length){ getFormObj().options = null; } else { getFormObj().options[i] = new Option(fileList[i],fileList[i]); } } } function getObj() { var Obj = false; if( window.XMLHttpRequest) { Obj = new XMLHttpRequest(); } else if(window.ActiveXObject) { try { Obj = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { Obj = new ActiveXObject("Microsoft.XMLHTTP"); } } return Obj; } function getFormObj() { return document.dirList.fileSelect; } </script> </head> <body> <form name="dirList"> <select name="dir" onchange="changeList()"> <option>ディレクトリを選択してください <option value="php4">php4 <option value="flash">flash <option value="cgi-bin">cgi-bin </select> <select name="fileSelect"> <option>ディレクトリを選択してください </select> </form> </body> </html> --------------------------------------------------- ajax.php --------------------------------------------------- <?php $dir = './' . preg_replace("~[\./]~",'',$_GET['dir']); $return = array(); if (is_dir($dir)) { $od = opendir($dir); while ($d = readdir($od)) { if (is_file("{$dir}/$d")) { $return[] = $d; } } } echo (is_array($return)) ? join("/",$return) : $return; ?> --------------------------------------------------- こんなのでどうでしょうか。 長くてすいません。

n187
質問者

補足

わざわざプログラム組んでいただいてありがとうです>< さっそく試してみましたが、できません・・・。 コンボボックスが二つ表示されて、表示された内容は ・ディレクトリを選択してください。 ・php4 ・cgi-bin ・flash そんなディレクトリはないのに表示されます。 ちなみにコンボボックスの下にはプログラムが入っているファイル名がすべて書かれます。 また二つ目のコンボには何もリストが表示されません。 ディレクトリを選択してくださいだけです・・・ どうなっているのでしょうか

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • hisappy
  • ベストアンサー率46% (184/392)
回答No.4

#2の方へ対しての補足に関して一言。 ちゃんとソースを読んでから使いましょう。 どういう動きをするものなのか分からずに使っていては、 質問意図と返答内容がかみ合いません。 回答されたものはあくまでもサンプルなので、 自分が意図されるものに合うよう修正が必要です。

全文を見る
すると、全ての回答が全文表示されます。
  • koooosuke
  • ベストアンサー率24% (19/78)
回答No.3

自分もPHPとJAVASCRIPTを混ぜて使おうとしている人です。 挫折しそうですが…(笑 JavaScriptでの別フレームや別ウィンドウ操作は 参考URLみてみるとわかりやすかったです。

参考URL:
http://homepage2.nifty.com/BASH/WWW/JavaScript/anotherpage.html
全文を見る
すると、全ての回答が全文表示されます。
回答No.1

>しかし、HTMLやJavaScriptからPHPに変数を渡す方法がわからないのでできないんです・・・。。 HTMLやJavaScriptからPHPに変数を渡すには再度ページを呼び出さなければいけません。 一番簡単なのは一つ目のコンボボックスが選択された時点で一回JavaScriptのsubmit()で内容を送信してしまい、二つ目のコンボボックスに値が入力されているページを開く方法ですね。 ただし欠点としてコンボボックスを変えるたびに再読み込みすることになります。 これを応用しましてJavaScriptで幅と高さを0に設定した隠れたインラインフレームの内部を呼び出すかすぐ閉じるポップアップを開いてそのインラインフレームの内部やポップアップから二つ目のコンボボックスの内容を変更する方法もあります。 また選択するフォルダの数が少ない場合は、最初に全てのフォルダの内容を読み込んでしまっておいて後はJavaScriptで解決する方法もあります。

n187
質問者

補足

>これを応用しましてJavaScriptで幅と高さを0に設定した隠れたイ>ンラインフレームの内部を呼び出すかすぐ閉じるポップアップを>開いてそのインラインフレームの内部やポップアップから二つ目>のコンボボックスの内容を変更する方法もあります。 この方法がまったくわからないのですが、どのようにしたらよいのでしょうか。 フレームに関する知識がないので勉強してみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPでディレクトリ名のみ表示する方法が知りたいです。以下のプログラム

    PHPでディレクトリ名のみ表示する方法が知りたいです。以下のプログラムで「test」というディレクトリ内のファイル一覧(ディレクトリ名とファイル名)を表示するようにしているのですが、この中からディレクトリ名のみ表示させたいのですがどのようにすればいいのでしょうか? よろしくお願いします。 <?php if ($dir = opendir("test/")) { while (($file = readdir($dir)) !== false) { if ($file != "." && $file != "..") { echo "$file<br>\n"; } } closedir($dir); } ?>

    • ベストアンサー
    • PHP
  • PHP(HTML、JavaScriptも?)

    クリアボタンを押すことによって、あるセッション変数(ここでは$player1num[0~15]という風に配列を使っており、テキストボックスに数値を入力後submitボタンを押すことによりその数字をこの変数に格納して表示してます)を破棄したいです。 PHP内でechoを使って表示された後、クリアボタンを押すことで$player1num[0~15]を破棄したいのですが、どんなプログラミングをすれば良いのでしょうか? JavaScript内で$player1num=array();として、onClickでそれを呼んで破棄しようとしたのですがうまくいきません。 セッションの使い方をちゃんと分かっていない初心者ですが、どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • ディレクトリの指定が上手くいかない

    http://ponk.jp/old/php_file/index.php?page=6 で紹介されているスクリプトをコピーし、 $dir = opendir("./"); の部分を $dir = opendir("../tmpl/"); に置き換えたのですが、ファイルが存在しているはずなのに選択メニューにファイル名が表示されません。 試しにカレントディレクトリを指定してみましたが、問題なく表示されました。 [tmpl]までのパスは合ってます。 考えられる原因を教えてください。 長文乱文失礼しました。

    • ベストアンサー
    • PHP
  • PHPからHTMLへのデータ送信

    初歩的な質問なのですが、HTMLからPHPへのデータ送信はform actionで行うと思うのですが、PHPからHTMLへのデータ送信はどのように行うのでしょうか? PHPで取得した変数を使って、HTMLの表示を少し変更させたいと考えています。 HTMLとPHPファイルは別々にしたいです。 よろしくお願いしますm(_ _)m

  • HTMLでPHPを動かす

    はじめまして。 よろしくお願い致します。 HTMLファイルでPHPを動かすには.httaccessで AddType application/x-httpd-php .html を設定すれば良いとは調べて確認できたのですが、 決まったファイルのみ、 例えば一つのディレクトリ内にindex.htmlとhoge.htmlがあったとします。 その際index.htmlのみPHPを動かす設定は、どうすればよいのかと思いご質問させていただきました。 どうかよろしくお願い致します。

    • ベストアンサー
    • PHP
  • フォルダ内のファイル名を取得して配列にぶち込みたいです

    こんにちは。 フォルダ内ファイル名を一覧にして表示させることまでは出来ますが、 この一覧表示されたファイル名を配列に入れるにはどうしたらよいでしょうか。 <?php $dir = "sample/"; // ディレクトリの内容を読み込みます。 if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { echo "filename: " . $file . "<br />\n"; } closedir($dh); } ?> ご教示宜しくお願い致します。

    • ベストアンサー
    • PHP
  • JavaScriptによる.exeファイルの実行

    JavaScriptファイルJS.htmlの実行によって 同ディレクトリ内のバッチファイルDIR.batファイルを実行し DIR.batがDIR.txtを生成するのを待ってDIR.txtをJavaScriptの内部変数var strに読み込ませる方法を教えてください なおDIR.batの内容はdir>DIR.txtです

  • PHPでネットワークドライブのopendir

    PHPのopendir関数でネットワークドライブを指定するとエラーになります。 <クライアント環境> Windows7 php 5.2.13 Apache 2.2.25 <詳細> opendir('//サーバー名/共有名')でエラー(failed to open dir)になります。 エクスプローラから//サーバー名/共有名へはアクセスできます。 1.opendir関数でネットワークドライブは使えないのですか? 2.エラーにならずに実行するにはどうすればいいですか? 3.ファイル/フォルダの一覧を取得したいのですがほかに方法はないですか? 以上よろしくお願いします。

    • 締切済み
    • PHP
  • PHPのopendir関数って・・・。

    <?php $dir = "/etc/php5/"; // 既知のディレクトリをオープンし、その内容を読み込みます。 if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { echo "filename: $file : filetype: " . filetype($dir . $file) . "\n"; } closedir($dh); } } ?> 上の例の出力は、たとえば以下のようになります。 filename: . : filetype: dir filename: .. : filetype: dir filename: apache : filetype: dir filename: cgi : filetype: dir filename: cli : filetype: dir とありますが、 filename: . : filetype: dir filename: .. : filetype: dir は何もフォルダになくても出ますよね? これは何ですか??

    • ベストアンサー
    • PHP
  • HTMLからPHP呼び出し【ギブアップ】

    HTMLからPHPを呼び出す方法について、色々調べて実施してみましたが、 どうも動作しません。ギブアップ状態なので、皆様のお知恵をお借りできたらと 思い質問することにしました。 現在の状況。 (1)Apache設定  「.htaccess」ファイルに★印行部分を定義。  ★AddType application/x-httpd-php php html  この定義以外にも色々試しに定義を変えています。  例えば、AddType application/x-httpd-php .php .htmlなど「.」を付与したり。 (2)HTML  <html>  <head>テスト</head>  <body>  <?php include "aaa.php"; ?>  </body>  </html> (3)PHP  aaa.phpは、単体で動作します。  aaa.phpは、HTMLファイルと同ディレクトリにあります。   上記の設定でHTMLを表示すると空白表示されます。 調べた結果、上記で動作すると思ってるのですが、何が問題なのでしょうか? 宜しくお願いします。 また、情報不足していましたら、ご指摘ください。追加します。

    • ベストアンサー
    • HTML
PC-SN176BCDWのファンの音について
このQ&Aのポイント
  • PC-SN176BCDWのファンの音が気になる方へ
  • 無線LANを使用しているPC-SN176BCDWのファンの音について詳しく解説します
  • PC-SN176BCDWのファンの音の正常範囲と対処方法についてご紹介します
回答を見る