• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javascript 関数内でのPHP関数)

JavaScriptでPHP関数内でデータ取得する方法

このQ&Aのポイント
  • PHPとMySQLを使用して機械部品の管理を行うプログラムを作成しています。JavaScriptを使って入力したパーツ番号から詳細説明を取得できるはずですが、うまく動作しません。この質問文章では、JavaScript関数内でのPHP関数の実行について相談しています。
  • 提供されたPHPファイルでは、PHP関数getDescription()は機能しているようですが、JavaScript関数GetDesc()内で使用すると機能しません。さまざまな試みを行いましたが、うまくいきませんでした。問題を解決するためのアドバイスを求めています。
  • この問題を解決する方法がわからず困っています。提供されたPHPコードと実行結果のスクリーンショットを添付しています。どのようにすれば思い通りに動作するか、助言をいただけませんか?

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

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

xmlhttp.open("GET", "JSON-TEST4.php?object=" + num , true); GETは、実際にURLバーにその文字が入っているのと同じ状態なので 結果的にURLバーの長さの制限を受けます。 POSTの場合は長さの制限がほぼないので、 例えば「ローカルから長いデータを送り出したい?」ってときは、 この方法だと、いつかトラブルかもしれません。 で、xmlhttp.openこいつでも、POST送信はできるので、 そこを治すことでより大きなデータを扱えますよ。 ただ、「JSからPHPを叩ける」の意味を完全に 理解したことがわかるソースを貼ってくれたのがうれしく思います。 少なくとも、もうTXTファイルだらけにする必要もないですし。 PHPにパラメーターが渡せるのなら、どんな機能も実装可能だ ってことが、一番のテーマだったので、よかったかなと 思います。 この板は、質問者さんがOKなら、閉じてもOKですよ。

papashiroSooke
質問者

お礼

返答ありがとうございます。 POSTで送る方法も分かりましたので、長いパラメーターを渡したい時には使ってみようと思います。 ただ、現状では10文字前後のパーツ番号を送ってその属性を取得するだけのルーチンを作りたいだけなので、今回はGETのままにしておきます。 なんだかマンツーマンで授業を受けているような感じで、学生に戻ったように気持ちが良かったです。本当に貴重な時間を割いて教えて頂き、有難うございました。 今回の質問はこれで締めさせていただきますが、まだまだ勉強不足の私の事ですから、PHP、JAVASCRIPT, JSON, JQUERYなどについてこれからもOKWAVEに質問を沢山 乗せてもらうことになると思います。また機会があったら色々と教えてください。 AsarKingChangさんのお仕事の方でも、これからいいことが沢山あることを祈ります。

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

その他の回答 (12)

回答No.12

>どうかしばらくお待ち下さい。 大丈夫ですよ! ひとまず、これが何をやっていてどういうメリットが生まれているか? で、結果どんなことができるようになるのか?が分かれば、 今やられている業務?は、綺麗に進行するのではないか と思っての投稿になります。 もちろん、その場で私がそれを見た結果での サンプルではないので、そうじゃないよ!とかの 意見が出ることは最初からわかっているので、 継続して、じゃあ!こんな時は?など 聞いてもらえたら、その時点でよさそうな サンプルをまた、作っていくつもりではあります。 ひとまず、あれで遊んでみてください。 慣れてきたら、 validation(バリデーション)=例えば数字が来るはずのフィールドなら 「それは数字だったのか?」とチェックを加えたり model(モデル)=データベースへのアクセスを一か所にまとめて 管理しやすくして、 それをcontroller(コントローラー)で ある処理には、データAとデータBが必要!ってのをそこにプログラム 最後にview(ビュー)最終出力部として、 ブラウザ側のAJAX(JS)に送り返したい形式で送り返す。 この概念を取り込めば、他の人が担当にする場合でも、 何がどこにあるか、すぐにわかりさらに、 何をやってるかもわかりやすくなるかと、思いますので。 今回のは、動作の流れを見るのに必要なものを最小構成で 記載したものですので。 という事で!良い一日を!

papashiroSooke
質問者

お礼

いつも勇気をもらえるようなことを言っていただき、感謝します。 前回お送りいただいたHTMLとPHPのソースファイルはまだ解析できていませんが、今までに教えて頂いたことをヒントにして自分なりに考えて、試行錯誤の上、次のようなコードを書きあげました。実行したら入力したパーツ番号からその詳細説明だけでなく在庫数や倉庫での保管位置など、関連する情報を引き出すことが出来ました。 以下にHTMLとPHPファイルをコピーします。 AsarKingChangさんに説明するまでもないことかと思いますが、HTML側では入力したパーツ番号をGETで?以下のパラメーターにしてAJAX要求し、PHP側ではすでに用意されているGLOBALな連想配列である$rev,$description, $stock, $location からそれぞれ与えられたパーツ番号の物を取り出して、JSONに変えて送り出すという形です。 さらにHTMLではレスポンスとして得たデータを指定の位置に表示するというものです。 HTML: ファイル名 = AJAX-TEST4.html <! DOCTYPE HTML> <HTML> <head> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script> function getData(){ var num = document.getElementById("PN").value; var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function(){ if(this.readyState == 4 && this.status == 200){ var myObj = JSON.parse(this.responseText); document.getElementById("RV").innerHTML = myObj.rev; document.getElementById("DS").innerHTML = myObj.description; document.getElementById("ST").innerHTML = myObj.stock; document.getElementById("LO").innerHTML = myObj.location; } }; xmlhttp.open("GET", "JSON-TEST4.php?object=" + num , true); xmlhttp.send(); } </script> </head> <body> input part number: <input type="text" id="PN"><br><br> <button onclick="getData()">click to get data from server</button> <br><br> ------- data from server ------<br> <table border="1"> <tr><th> attribute </th> <th>value </th></tr> <tr><td> revision </td> <td id="RV"> </td></tr> <tr><td> description </td> <td id="DS"> </td></tr> <tr><td> stock </td> <td id="ST"> </td></tr> <tr><td> location </td> <td id="LO"> </td></tr> </table> </body> </html> PHP: ファイル名=JSON-TEST4.php <?php //C:\xampp\htdocs\OOP-PHP\BOMdatabase\JSON-TEST.php require_once "databaseConnection.php"; global $rev, $description, $stock, $location; $partNumber = $_GET["object"]; $data = array(); $data['rev'] =$rev[$partNumber]; $data['description'] = $description[$partNumber]; $data['stock'] = $stock[$partNumber]; $data['location'] = $location[$partNumber]; $Json_data = json_encode($data); echo $Json_data; ?> AsarKingChangさんから頂いたファイルはJqueryで書かれており、自分は見たこともない".then()"などというのも入っていて、にわかにはマスターできそうもありませんが、それは時間をかけて勉強していく教材にさせて頂きたいと思います。 今回は自分で書いたものを応用して本来のプログラムに使いたいと思います。 今回の質問は少し長めのやり取りになってしまい、AsarKingChangさんの貴重な時間を多く奪ってしまう結果になりましたが、一応これで締めたいと思いますが、構わないでしょうか? 問題が無ければその旨お知らせください。

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

>こちらカナダはもう夜の11時過ぎで、私は明日も仕事があるので寝なくてはいけません。それでこのコードの内容を分析するのは明日の仕事の後になると思いますが、また連絡差し上げます。 海外だったのですね。ic illwait. gdnyt.

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

>JQuery を使っての解説なので、難しさを感じてしまいました。 動く状態で紹介しますよ。 結局はJS命令で整形をすればいいので、 難しく考えなくてもOKですよ。 添付の画像は、ブラウザ(Chromeのデバッグモード)F12キーで起動可能。 での、変数ダンプを行っている様子です。 HTML内のFORMパーツを「変数」に見立ててサーバーに 送り出し、PHPがそれを受け取り、JSの変数として 送り返しているサンプルになります。 なので、PHPが 受け取ったFORMパーツの変数の値でDBを 操作してその結果を返せば、いちいちTXTファイル作らなくても、 取得ができて、サーバーをその都度叩いてはいますが、 PHP内の特定の機能を呼び出すように 例えば先ほどの変数$contents["function"] これを、 switch ( $contents["function"] ) { case "機能1":... case "機能2":... } と拡張していけば、どんな機能を追加することもできますので、 このようにHTML(JS)とPHPの変数を疑似的に接続することで、 リクエスト時の時差はあっても、拡張性はかなりあるやり方に なるとおもいます。 ここに、DBの出力をそのまま結合してみれば、 「あ~なるほど!」って感じになると思いますが。 ひとまず、ここまで出来ましたら、 そういうことじゃ!ないんだ~など(笑)クレームを! HTML側のINPUTをセレクトボックスやチェックボックスにして、 サーバーにどうわたるかを見てもらえたら、と思います。 ひとまずJQ.AJAXではあるものの、 最小限(全部込みでも50行もない)のソースなので、 参考になりそうだったら、うれしく思います。

papashiroSooke
質問者

お礼

お礼が遅くなったことをお詫びいたします。 クライアントサイド、サーバーサイドそれぞれに見事なソースコードを送っていただき、本当に有難うございます。 これらの中身をよく研究させていただき、自分のやりたいことにどの様に応用していけばいいのか、考えてみたいと思います。 そもそもjQUeryそのものからきっちりと勉強をしないといけないです。 普通にJSを使って書いたAJAXは色々なブラウザーに対応するためには面倒な記述が必要であるが、 jQueryを使うとそのようなブラウザ間の違いを吸収してくれると知ってはいたのですが、つい怠けておろそかにしていました。 AsarKingChangさんの仰る様に、「この板は」私が送っていただいたソースの中身をよく理解して、自分の問題に対する解答を見つけ出せるまで開けたままにして置きたいと思います。 どうかしばらくお待ち下さい。必ずお返事を差し上げます。

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

次にPHPファイル(api.php)がいいでしょう。 気に入らない場合は先ほどのHTMLの、AJAXの根元を書き換えれば何でも構いません。 --- <?php header( "Access-Control-Allow-Origin: *" ); header( "Content-Type: application/json; charset=utf-8" ); $json = file_get_contents( "php://input" ); $contents = json_decode( $json , true ); // JSの変数を受け取りPHPで処理をして、 // PHPの変数をそのままJSに送り返すサンプル+@で一部を書き換え追加 $contents["php_dayo"]="あなたは".$contents["function"]."を呼びました。"; if ( isset($contents["mode1"])) { $contents["mode1_dayo"]="mode1は".$contents["mode1"]."だよ"; }else{ $contents["mode1_dayo"]="mode1はありません"; } if ( isset($contents["mode2"])) { $contents["mode2_dayo"]="mode2は".$contents["mode2"]."だよ"; }else{ $contents["mode2_dayo"]="mode2はありません"; } if ( isset($contents["mode3"])) { $table_size = intval($contents["mode3"],10); }else{ $table_size = 0; } $contents["test_table"]=[]; for ($i=0;$i<$table_size;$i++) { $contents["test_table"][] = rand(0,999); } // 配列も、JSにそのまま受け渡されますので、 // data[test_table].lengthで長さが判定できて、 // data[test_table][n]で表示できます。 echo json_encode( $contents );

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

ひとまず、まずは、HTMLを保存してください。 --- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script> $(function(){ function parseJson(data) { var returnJson = {}; for (idx=0;idx<data.length;idx++) { returnJson[data[idx].name] = data[idx].value; } return(returnJson); } $('form').submit( function() { let data = $(this).serializeArray(); data = parseJson(data); $.ajax({ type: 'post', url: 'api.php', dataType: 'json', contentType: 'application/json', scriptCharset: 'utf-8', data: JSON.stringify(data), }) .then( function (data) { $('textarea[name="server_response"]').val( JSON.stringify(data) ); max=data["test_table"].length; text="データは"+max+"件ありました\n"; for (i=0;i<max;i++) { text+=data["test_table"][i]+"\n"; } $('textarea[name="server_response2"]').val(text); }, function () { $('textarea[name="server_response"]').val( "エラー" ); } ); return(false); }); }); </script> </head> <body> <form method="POST" accept-charset="UTF-8"> <input type="hidden" name="function" value="hoge_func1"> <table> <tr><td>mode1</td><td><input type="text" name="mode1"></input></td></tr> <tr><td colspan=2><input type="submit" name="submit"></input></td></tr> </table> </form> <form method="POST" accept-charset="UTF-8"> <input type="hidden" name="function" value="hoge_func2"> <table> <tr><td>mode1</td><td><input type="text" name="mode1"></input></td></tr> <tr><td>mode2</td><td><input type="text" name="mode2"></input></td></tr> <tr><td>mode3</td><td><input type="text" name="mode3" value=20></input></td></tr> <tr><td colspan=2><input type="submit" name="submit"></input></td></tr> </table> </form> <table> <tr><td colspan=2>レスポンス</td></tr> <tr><td colspan=2><textarea name="server_response" cols="50" rows=20></textarea></td></tr> <tr><td colspan=2><textarea name="server_response2" cols="50" rows=20></textarea></td></tr> </table> </body> </html>

papashiroSooke
質問者

お礼

HTMLソースコード受け取りました。 有難うございます。 一応ブラウザで走らせてみたものの画面写真を送ろうと思ったのですが、この「お礼入力」ではそれは出来ないようです。 こちらカナダはもう夜の11時過ぎで、私は明日も仕事があるので寝なくてはいけません。それでこのコードの内容を分析するのは明日の仕事の後になると思いますが、また連絡差し上げます。

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

>従ってファイルが変わるたびにサーバーからデータを持ってこなくても良いように出来るのであれば、是非その方法を教えてください。 お願いします。 ローカルにそのファイルがない事はどうにもならないので 持ってくる必要は出ますよ。 ただ、先ほどのやつだと、事前にSQLでーたをテキストにしていたようで、これをなくして、 直接 HTML->AJAX->ここで、PHPをパラメーター付きでたたく事で、  PHPで今やってるテキストファイルを作るという工程をなくし  その時点で送り出す 当然SQLなので、そこで条件設定もできますから。 5番だけ欲しいなども。 見てる感じ、ローカル側のHTMLから、パラメーターをサーバーに送り それをSQLが受け取るのをAJAX(非同期)扱いでやれたら 道が開けそうなイメージではいます。 どちらにしても、ローカルはローカル、サーバーはサーバー その区別は超えられないので、どうにかして、 近く見せかけるか?だけの話ではあるので。 (直前の仕事がいっぱいでして。何かしら作りますよ。  AJAXにパラメタを送り出すのと、  AJAXから配列を送り返すの使えるだけで、  ほぼ、質問者さんなら解決できると思ってます。) https://itsakura.com/jquery-ajax なお、こういう概念ですけど。 AJAXとJSONを混ぜればパラメタ双方向で通信をできます。 ただ、結局は「通信をしなければならない」ことは 変わりませんがね。

papashiroSooke
質問者

お礼

有難うございます。 AsarKingChangさんからご紹介いただいたサイトに行ってみましたが、JQuery を使っての解説なので、難しさを感じてしまいました。 JQuery にはまだあまり詳しくありませんが、自分でもPHPとJSONの組み合わせに関して調べていましたら、W3SCHOOLのサイトで通常のJAVASCRIPTを使ったものがありました。 自分がやろうとしていることに役立ちそうなものなので、時間をかけて研究してみようと思います。サイトのURLを下に貼っておきますので、もしお時間があるようでしたら見て頂き、ご意見を聞かせてもらえれば幸いです。 https://www.w3schools.com/js/js_json_php.asp#:~:text=PHP%20File%20explained:%20Convert%20the%20request%20into%20an,object%20as%20JSON%20using%20the%20json_encode%20()%20function.

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

>是非その方法を教えてください。 多分やりたいことはわかった気がするので、 少しこの板開けておいてくださいね。 AJAXからPHPを叩く場合、PHPの変数に値をセットできるので、 ってことは、PHPはそれを処理したものを送り返せばいいだけ。 そうすれば、1本化できるので、すっきりしますので。 ちょい、お待ちを!

papashiroSooke
質問者

お礼

有難うございます。 ワクワクして待っています。

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

>AJAXは結局Javascriptなのでいくつかのファイルで構成されるシステムを作るとき、それぞれのファイルに おなじAJAXコードを書いていて、ファイルを切り替えるたびにデータの読み込みに時間がかかっています。 >PHPのように一つのファイル内でデータの配列を用意すれば、これをglobal変数として宣言するだけで >他のファイルでも使えるようになっていればいいのですが。 さすがにローカル側に全DBのデータを入れておくのは 無駄が多いのと、それではSQLなどの検索関連が 使えない分、デメリットの方が目立つでしょうね。 AJAXでPHPを叩くとして、叩くとき「パラメーター」を 与えることができますので、何個も作るのではなく、 受け取りコントローラーとしてAJAX->PHPを呼び出し 返り値を得ることで、1本化できると思いますよ。 ちょっと今、夜の部がバタバタしてきたのですが、 必要でしたら、サンプル書きますよ(動くまでは対応しますが) 緊急事態宣言がそろそろ終わりそうなので。 ゆっくりしていられる時間も、もう終わりそうでして。

papashiroSooke
質問者

お礼

回答有難うございます。 「AJAXでPHPを叩く」という意味はよく分かりませんが、もし何かのパラメーターを使ってAJAXを始めれば複数のファイルに同じAJAXコードを記述せずに、 従ってファイルが変わるたびにサーバーからデータを持ってこなくても良いように出来るのであれば、是非その方法を教えてください。 お願いします。 ちなみに、私がPHPでデータベースのテキストファイルを作る部分(A)と、他のファイルでAJAXを使っている部分(B)のコードを下に貼り付けていますので、 これらのどこかに加工を加えるのであればご指摘いただければありがたいです。 (A) $query="select count(*) from partsmaster"; $result=mysqli_query($connection,$query) or die("query failed to get all id of parts"); $row=mysqli_fetch_array($result); $maxNum=$row[0]; $fhandle=fopen("c:/xampp/htdocs/newBOM/num2namezzz.txt","w"); For ($count=1; $count <=$maxNum; $count++){ $query="select * from partsmaster where id=$count"; $result=mysqli_query($connection, $query) or die("query failed to get all data from parts where id=$count"); if($result){ $row= mysqli_fetch_array($result); $id= $row["id"];//0 $pNum= $row["partNumber"];//1 $rev= $row["rev"];//2 $desc= $row["description"];//3 $stok= $row["stock"];//4 $loc= $row["location"];//5 $mk1 = $row["maker1"];//6 $mk1pn = $row["maker1_PN"];//7 $mk2 = $row["maker2"];//8 $mk2pn = $row["maker2_PN"];//9 $sup1 = $row["supplier1"];//10 $sup1pn = $row["supplier1_PN"];//11 $sup1cst = $row["supplier1_cost"];//12 $cur1 = $row["currency1"];//13 $sup2 = $row["supplier2"];//14 $sup2pn = $row["supplier2_PN"];//15 $sup2cst = $row["supplier2_cost"];//16 $cur2 = $row["currency2"];//17 $bom = $row["hasBOM"];//18 $date = $row["dateCreated"];//19 $who = $row["whocreated"];//20 fwrite($fhandle, $id.'~'); fwrite($fhandle, $pNum.'~'); fwrite($fhandle, $rev.'~'); fwrite($fhandle, $desc.'~'); fwrite($fhandle, $stok.'~'); fwrite($fhandle, $loc.'~'); fwrite($fhandle, $mk1.'~'); fwrite($fhandle, $mk1pn.'~'); fwrite($fhandle, $mk2.'~'); fwrite($fhandle, $mk2pn.'~'); fwrite($fhandle, $sup1.'~'); fwrite($fhandle, $sup1pn.'~'); fwrite($fhandle, $sup1cst.'~'); fwrite($fhandle, $cur1.'~'); fwrite($fhandle, $sup2.'~'); fwrite($fhandle, $sup2pn.'~'); fwrite($fhandle, $sup2cst.'~'); fwrite($fhandle, $cur2.'~'); fwrite($fhandle, $bom.'~'); fwrite($fhandle, $date.'~'); fwrite($fhandle, $who."\r\n"); } }// end for fclose($fhandle); (B) <script type="text/javascript"> var xhttp; var total=array(); var record=array(); var item=array(); var pn; //====================================== function ajaxStart(){ if(window.XMLHttpRequest){ xhttp = new XMLHttpRequest(); } else if(window.activeXObject){ xhttp = new activeXObject("Microsoft.XMLHTTP"); } else return false; xhttp.open("GET", "num2namezzz.txt", true); xhttp.onreadystatechange = function() { if (xhttp.readyState == 4 && xhttp.status == 200) { total =xhttp.responseText; record=total.split("\r\n"); document.getElementById("ajaxTest").value= xhttp.readyState + "-" + xhttp.status + "-" +record.length; } // end if }// end inner function() xhttp.send(null); } // end function ajaxStart //====================================== function getDesc(){ pn = document.getElementById("PN").value; max = <?php echo $maxNum ?>; for (var count=0; count < max; count++){ // record start with record[0] item=record[count].split("~"); if(item[1]==pn){ document.getElementById("RV").value=item[2];//存在する項目を先に書いていく document.getElementById("DS").value=item[3]; document.getElementById("LK").value=item[5]; document.getElementById("ST").value=item[4];// 存在しないものに出会うと、それ以上進まない break; }// end if }// end for }// end function

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

>$pnを用意しようとしているわけです。 >で、その引数は<input type="text" id="PN">に入力されたものですが、JavaScriptで取得された値である >var PN = document.getElementById("PN").value; をそのまま使う訳に行かないので、それをPHPで使えるようにするために >"<?php $pn = '" + PN + "'; echo getDescription($pn); ?>"; の最初の部分でJS変数PNからPHP変数$pn を作っています。 であれば、最初に言ったみたいな問題ですね。 JavaScriptはクライアント言語なので、 JSが実行されるときもうPHPは存在しないのですよ。 成形済みのテキストがそこにあるだけです。 是非実行してもらいたい!項目。 この手のを調査するときHTMLソース(PHPソースではなく) を出しながら値の流れを見てもらうことをお勧めします。 HTMLを表示するときソースを出してみればわかりますが。 そこには、PHP(いわゆるSSI)は残っていないので、 それを成形する為のJSなので、 JSからPHPを稼働させるにはAJAXなどにしないと動作しません。 なのですが、AJAXにチャレンジしてみます? ひとまず、この質問だけの回答としては、「不可能」となります。 PHPは今回の場合は、DBを開いて、getDescriptionなどの処理を 行った「後」コンテンツがブラウザに送り出されています。 その後JSでPHPが作ったテキスト部を読み取ったにすぎないので、 そこで新しいアクションは起こせない。 (起こしたところでクライアント言語なので、  そこにはPHPもDBもサーバーにあるのですから、  動作するわけがない) ってなことになります。 AJAX(XHR)の場合は、ボタンを押した後に、 サーバーのDBを叩くにコードが書けますが、 そういう方式でもよければ、サンプル書きますよ。 (今回のコードを基準で) んま、手っ取り早く終わらせるならJquery系のJSで 書いたほうがすぐ終わりでしょうし。 今回までの最後に! 「この板少し長く残しておいてくださいね。」 もし、気分を害していない用であれば、とことんやりましょか!

papashiroSooke
質問者

お礼

詳しい回答をありがとうございます。 気分など害してはいません。 おかげでサーバーサイドとクライアントサイドトいうことの区別がよくわかりました。 AJAXは実際に自分が作成中のプログラムでも使っています。 自分は8000個くらいある機械部品のデータベースをもとにPHPでテキストファイルを作り、 それをAJAXを使って部品番号をキーにして詳細説明を取り出す連想配列を用意してあり、 ユーザーが<input> タグに部品番号を入れてOKボタンを押したらその連想配列から 詳細説明を取り出して表示するようにしています。 これが効率の良い方法かどうかわからないのですが、AJAXについては今のところその程度の知識なので。 AJAXは結局Javascriptなのでいくつかのファイルで構成されるシステムを作るとき、それぞれのファイルに おなじAJAXコードを書いていて、ファイルを切り替えるたびにデータの読み込みに時間がかかっています。 PHPのように一つのファイル内でデータの配列を用意すれば、これをglobal変数として宣言するだけで 他のファイルでも使えるようになっていればいいのですが。 実際、今回の質問は自分のやりたいことはAJAX以外には出来ないのだろうかと疑問に感じたことから出ています。 MySQLのデータベースのコピーであるテキストファイルを作って、それをAJAXでで読み込んで、 といったようなことをせずに直接データベースにアクセス出来ればいいじゃないかと思ったわけです。 でもこれはHTMLファイルが画面に表示された時点でサーバーサイドを離れたので無理だということですね。よくわかりました。 AsarKingChangさんからすればレベルの低い質問に何度もお付き合いいただき、本当に有難うございました。 これからはクライアントからサーバーにアクセスできるAJAXをもっと詳しく研究していきたいと思います。

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

まとめると、実質1行で終わる気がしましたけど。 <script> function getDesc(){ document.getElementById("DSC").innerHTML = document.getElementById("PN").value + "<?= getDescription($pn); ?>"; } </script> PN = "'"+ PN +"'"; ←これいらない ”あいうえお”には、「”」が本当に入っているわけではなく、 文字列変数だからそう書いているだけで、実際にはいらないものです。 PN = A; これは、Aという変数が入る。 PN = "A"; これは、Aという文字列が入る。     実際に変数の中に「”」があるわけではない。 の差です。

papashiroSooke
質問者

お礼

回答有難うございます。 どうも誤解されているようなので説明させてください。 私はPHP関数 getDescription() が働くことがわかっているので、この関数に送る引数$pnを用意しようとしているわけです。 で、その引数は<input type="text" id="PN">に入力されたものですが、JavaScriptで取得された値である var PN = document.getElementById("PN").value; をそのまま使う訳に行かないので、それをPHPで使えるようにするために "<?php $pn = '" + PN + "'; echo getDescription($pn); ?>"; の最初の部分でJS変数PNからPHP変数$pn を作っています。 たしかにPNは文字列なのでシングルコートで囲む必要はないかもしれませんが、これによって例えば<input> に入れた値が591-011-10 だとすると PHP変数$pn='591-011-10' が得られますよね。これを引数として getDescription($pn) を実行するとそのパーツの詳細説明が<span> 部分に表示されると期待しているわけです。 関数の戻り値ではなくて単に$pn だけなら表示することが出来ます。なのにどうして関数の戻り値は表示されないのかということがわからないのです。

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

関連するQ&A

  • PHP + MySQLを使用して詳細画面を開く

    いま下記のソースで一覧画面が表示されます! 氏名をクリックしたら別ウインドウで詳細画面を表示させたいのですがやり方がわかりません 参考までに教えてください <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","password","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html>

    • ベストアンサー
    • MySQL
  • phpとMySQLの連携の不具合

    こんにちは。 現在私はhtmlのフォームに文字を入力してデータベース内にデータを追加するプログラムを 作成しています。 ですがMySQLとの連携のところで行き詰ってしまい、どうにかみなさんのお力をお借りしたいです。 まずhtmlファイルです。ここに文字を入力してup.phpに値を渡しています。 <html> <head> <title>用語情報入力</title> </head> <body> 用語を入力してください。<br> <br> <form method="POST" action="up.php"> yougoid:<input type="text" name="yougoid" size="25"><br><br> 用語名:<input type="text" name="yougo" size="25"><br><br> 説明:<input type="text" name="sestumei" size="10"><br><br> 読み:<input type="text" name="yomi" size="10"><br><br> 講義回:<input type="text" name="kougi" size="10"><br><br> 回:<input type="text" name="kai" size="10"><br><br> <input type="submit" value="登録する"> </form> </body> </html> そしてこちらがup.phpファイルです。postで送られてきた値をMySQLに反映するプログラムです。 <html> <body> 用語情報<br><br> yougoid:<?php echo $_POST['yougoid'] ?><br><br> 用語名:<?php echo $_POST['yougo'] ?><br><br> 説明:<?php echo $_POST['sestumei'] ?><br><br> 読み:<?php echo $_POST['yomi'] ?><br><br> 講義回数:<?php echo $_POST['kougi'] ?><br><br> 回:<?php echo $_POST['kai'] ?><br><br> <?php $db = mysqli_connect("localhost", "root", "c0106426" , "network"); mysqli_query($db, "SET NAMES UTF-8"); $sql = "insert into employee (yougoid,yougo,sestumei,yomi,kougi,kai,) values (\"".$_POST['yougoid']."\",\"".$_POST['yougo']. "\",\"".$_POST['sestumei']. "\",\"".$_POST['yomi']."\",\"".$_POST['kougi']."\",\"".$_POST['kai']."\")"; $result = mysqli_query($db, $sql); if($result == TRUE) { print "データベースに格納しました。"; } else{ print "データベースに格納できませんでした。"; } mysqli_close($db); ?> </body> </html> データベースはnetworkという名前でテーブル名はyougoid,yougo.setsumei,yomi,kougi,kai というテーブルがあります。 現在の状況は最後のデータベースに格納・・・も表示されないので resultに値が返ってきていないと推測していますが エラーも出ない状況なのでどうしていいかわかりません。 実行結果を画像で添付いたします。よろしくお願いします。

    • 締切済み
    • PHP
  • php パラメータ

    新規登録として登録できたら別ウインドウに遷移せずそのままtopに戻し戻ってきたらデータが登録されているようにしたいですがなかなか出来ません 調べたら、exec関数を使えばできるとのことですが $return_data = exec("/usr/local/bin/php ./top.php param1 = 1 m2 = 2"); こんな例がありましたが自分の力ではこのプログラムのどこを修正すればtop.phpに返ってくるかわかりません 下記は新規登録を行うための入力フォームです 登録するボタンを押したらそのままtopに移動したいのですがいまはinsert.phpに飛んでしまいます regist.php <html> <head><title>新規登録</title></head> <body> <blockquote> <form action = "insert.php" method = "POST"> <br><br>登録画面<br><br> すべての項目入力してください<br> 番号<input type="number" name = "ID"> (一覧画面にない番号を入力してください) <br> <br>氏名<input type="text" size = "50" name = "NAME"><br><br> 住所<input type="text" size = "130" name = "ADDR"><br><br> <a href="http://localhost/top.php"> <input type = "submit" value = "登録する" style ="font-size:20px; width: 100px; height: 40px"></A> <a href="http://localhost/top.php"> <input type = "button" value = "一覧に戻る" style ="font-size:20px; width: 100px; height: 40px"></A> </body> </blockquote> </form> </body> </html> 下記はinsert.phpです <!--insert.php 登録完了--> <html> <body> <blockquote> <?php $con=mysqli_connect("localhost","root","admin","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } if ($_POST['ID'] != '' && $_POST['NAME'] != '' && $_POST['ADDR'] != '') { $id = mysqli_real_escape_string($con, $_POST['ID']); $name = mysqli_real_escape_string($con, $_POST['NAME']); $addr = mysqli_real_escape_string($con, $_POST['ADDR']); $sql="INSERT INTO tbl_test (番号, 氏名, 住所) VALUES ('$id','$name','$addr')"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } echo "登録完了しました"; } else { echo "<br><br>データが未入力の箇所があります。すべてデータを入力してください"; } mysqli_close($con); $return_data = exec("/usr/local/bin/php ./top.php param1 = 1 m2 = 2"); ?> <br><br><br> <a href="http://localhost/regist.php"> <INPUT TYPE = "button" VALUE = "登録画面に戻る" style ="font-size:20px; WIDTH: 140px; HEIGHT: 40px"></A> <br><br><br> <A HREF="http://localhost/top.php"> <INPUT TYPE = "button" VALUE = "一覧に戻る" style ="font-size:20px; WIDTH: 140px; HEIGHT: 40px"></A> </blockquote> </body> </html> どこを直せばいいですか? 本格的に直さないとできないですか?

    • ベストアンサー
    • PHP
  • php データ削除

    一覧画面に更新、削除というボタンをつくり番号を受け取って削除したいのですが、削除ボタンを押しても画面は変わるのですが削除されません 助けてください 番号 int プライマリーキー 氏名 varchar 住所 varchar 一覧画面のソース <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","admin","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "<form action=koushin_input.php method=post>"; echo "<td><input type=submit value=更新></td>"; echo "</form>"; echo "<form action=sakujo.php method=post>"; echo "<td><input type=submit value=削除></td>"; echo "</form>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html> 削除ソース  sakujo.php <html> <body> <? // データベースに接続 if(!$con=mysql_connect("localhost","root","admin")){ echo"接続エラー"; exit; } // データベースを選択 if(!mysql_select_db("db_test",$con)){ echo"データベース選択エラー"; exit; } // DELETE文を実行 $sql = "delete from tbl_test where '番号'= 番号; if(!$res=mysql_query($sql)){ echo "SQL実行時エラー"; exit; } // データベースから切断 mysql_close($con); // 登録完了メッセージの表示 echo "削除完了"; ?> </body> </html> どういう風にpostで渡せばいいですか?

    • ベストアンサー
    • MySQL
  • php + MySQLでデータ削除 更新

    一覧画面に更新、削除というボタンをつくり番号を受け取って削除したいのですが、削除ボタンを押しても画面は変わるのですが削除されません 助けてください 番号 int プライマリーキー 氏名 varchar 住所 varchar 一覧画面のソース <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","admin","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "<form action=koushin_input.php method=post>"; echo "<td><input type=submit value=更新></td>"; echo "</form>"; echo "<form action=sakujo.php method=post>"; echo "<td><input type=submit value=削除></td>"; echo "</form>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html> 削除ソース  sakujo.php <html> <body> <? // データベースに接続 if(!$con=mysql_connect("localhost","root","admin")){ echo"接続エラー"; exit; } // データベースを選択 if(!mysql_select_db("db_test",$con)){ echo"データベース選択エラー"; exit; } // DELETE文を実行 $sql = "delete from tbl_test where '番号'= 番号; if(!$res=mysql_query($sql)){ echo "SQL実行時エラー"; exit; } // データベースから切断 mysql_close($con); // 登録完了メッセージの表示 echo "削除完了"; ?> </body> </ht

    • 締切済み
    • PHP
  • データーベース接続 入力フォーム

    phpでデータベースを作成しています! 登録フォームからデータを入力して新しくデータを追加したいと思います! 番号 int プライマリーキー 氏名 varchar 住所 varchar です いまのプログラムは番号が重複じゃなかったら氏名と住所空白でも登録できてしまいます! 全部しないとエラーメッセージが返ってきて入力しなおさせるにはどうしたらいいですか? if文の書き方を教えてください また番号を空白だとエラーが返ってきます。どうしたらいいですか? 入力フォームのプログラム(regist.php) <HTML> <HEAD><TITLE>新規登録</TITLE></HEAD> <BODY> <BLOCKQUOTE> <FORM ACTION = "toroku.php" METHOD = "POST"> <BR><BR>登録画面<BR><BR> 番号 <INPUT TYPE="NAMBER" NAME = "ID"><BR><BR> 氏名 <INPUT TYPE="TEXT" NAME = "NAME"><BR><BR> 住所 <INPUT TYPE="TEXT" NAME = "ADDR"><BR><BR> <A HREF="http://localhost/test5.php"> <INPUT TYPE = "SUBMIT" VALUE = "登録する"></A> <A HREF="http://localhost/test5.php">一覧に戻る</A> </BODY> </BLOCKQUOTE> </FORM> </BODY> </HTML> 追加登録のプログラム(toroku.php) <HTML> <HEAD><TITLE>登録完了</TITLE></HEAD> <BODY> <?php $con=mysqli_connect("localhost","root","パスワード","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $sql="INSERT INTO tbl_test (番号, 氏名, 住所) VALUES ('$_POST[ID]','$_POST[NAME]','$_POST[ADDR]')"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } echo "登録完了しました"; mysqli_close($con); ?> <BR><BR> <A HREF="http://localhost/test5.php"> <INPUT TYPE = "SUBMIT" VALUE = "一覧へ戻る"></A> </BODY> </HTML> 表示のプログラム(test5.php) <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","パスワード","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html> 見づらくってごめんなさい

    • ベストアンサー
    • PHP
  • すいません。PHPの削除について

    質問番号5654502は失礼しました。お手数ですが、削除してください。 phpでWEBサイトの管理画面を作成しています。 削除ボタンを押すと、そのレコード1件分のみ、削除出来るようにしたいのですが、うまくいきません。ご教授願います。 // news.phpファイル <?php //データベースへの接続 $dberror = false; $dbermsg = ""; $con = mysqli_connect("localhost", "****", "********"); if ( $con ) { //データベースサーバへの接続OK if ( mysqli_select_db($con, "DB名") ) { $sql = "SELECT * FROM news WHERE user = '" . $_SESSION['loggedinUser'] . "' ORDER BY listingorder DESC, lastupdate DESC; "; mysqli_query($con, "set names utf8"); $rs = mysqli_query($con, $sql); $i = 0; if ( $rs ) { while ($item = mysqli_fetch_array($rs)) { echo "<tr class=\"Contents\">"; echo "<td><input type=\"hidden\" value=\"\" name=\"deleteId[$no]\" />"; echo "<input accesskey=\"1\" tabindex=\"1\" class=\"DeleteBt\" type=\"image\" value=\"削除\" name=\"submit_del[$no]\" src=\"images/delete_button.gif\" alt=\"削除\" onclick=\"deleteNews(); return false;\" /></td>"; echo "<td>"; echo "<div class=\"TurnSet\">"; echo "<div class=\"TheFirst\"><input accesskey=\"1\" tabindex=\"1\" type=\"submit\" value=\"▲\" class=\"broad\" name=\"weight[$no]\" /><br /><input accesskey=\"1\" tabindex=\"1\" class=\"broad\" type=\"submit\" value=\"▼\" name=\"weight2[$no]\" /></div><input accesskey=\"1\" tabindex=\"1\" type=\"submit\" class=\"UpArrow\" value=\"↑\" name=\"weight3[$no]\" /> </div>"; echo "</td>"; echo "<td class=\"TableName\"><span><a href=\"news_edit.php?id=${item['id']}\">${item['title']}</a></span></td>"; echo "<td class=\"CheckBoxPlace\"><input type=\"hidden\" name=\"active_o[$no]\" value=\"1\" /><input type=\"hidden\" name=\"active2[$no]\" value=\"0\" /><p class=\"CheckBox\"><input type=\"checkbox\" name=\"active3[$no]\" value=\"1\" checked=\"checked\" accesskey=\"1\" tabindex=\"1\" /></p></td>"; echo "</tr>\n"; $i ++; } } else { $dberror = true; $dbermsg = "一覧取得時のエラー" . mysqli_errno($con).": ".mysqli_error($con)."<br />\n"; } } else { // 以下省略 } ?> </body> <script type="text/javascript"> function deleteNews() { if ( window.confirm("選択されたニュースを削除します。\nよろしいですか?") ) { document.newsUpdateForm.mode.value = "delete"; document.newsUpdateForm.submit(); } return false; } </script> </html> // newsUpdate.phpファイル switch ( $mode ) { case "delete": //ニュース削除 if (isset($_POST["submit_del"])){ $no = key($_POST[submit_del]); //押下したボタン番号を取得 $sql = "DELETE FROM news WHERE listingorder='" . $no . "';"; mysqli_query($con, "set names utf8"); mysqli_query($con, $sql); } //表示順を更新する $sql = "SELECT * FROM news WHERE user = '" . $_SESSION['loggedinUser'] . "' ORDER BY listingorder, lastupdate ;"; mysqli_query($con, "set names utf8"); $rs = mysqli_query($con, $sql); $order = 0; if ( $rs ) { while ($item = mysqli_fetch_array($rs)) { $id = $item["id"]; $updateSQL = "UPDATE news SET listingorder='" . $order . "' WHERE id='" . $id . "';"; mysqli_query($con, "set names utf8"); mysqli_query($con, $updateSQL); $order ++; } } break; 以下省略

    • 締切済み
    • PHP
  • php データ新規追加

    入力フォームに入力された番号が登録されてなかったら新規登録できるようにしたい INSEPT IGNORE INTOで主キーを無視するのではなく重複したらエラーメッセージを出しユーザにもう一度入力させるようにする 新規登録フォーム <html> <head><title>新規登録</title></head> <body> <blockquote> <form action = "insert.php" method = "POST"> <br><br>登録画面<br><br> すべての項目入力してください<br> 番号<input type="number" name = "ID"> (一覧画面にない番号を入力してください) <br> <br>氏名<input type="text" size = "50" name = "NAME"><br><br> 住所<input type="text" size = "130" name = "ADDR"><br><br> <a href="http://localhost/top.php"> <input type = "submit" value = "登録する" style ="font-size:20px; width: 100px; height: 40px"></A> <a href="http://localhost/top.php"> <input type = "button" value = "一覧に戻る" style ="font-size:20px; width: 100px; height: 40px"></A> </body> </blockquote> </form> </body> </html> 登録を実行するフォーム <?php $con=mysqli_connect("localhost","root","admin","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } if ($_POST['ID'] != '' && $_POST['NAME'] != '' && $_POST['ADDR'] != '') { $id = mysqli_real_escape_string($con, $_POST['ID']); $name = mysqli_real_escape_string($con, $_POST['NAME']); $addr = mysqli_real_escape_string($con, $_POST['ADDR']); $sql="INSERT INTO tbl_test (番号, 氏名, 住所) VALUES ('$id','$name','$addr')"; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } header('Location: http://localhost/top.php'); exit(); } else { ?> <html> <body> <blockquote> <br><br>データが未入力の箇所があります。すべてデータを入力してください <br><br><br> <a href="http://localhost/regist.php"> <INPUT TYPE = "button" VALUE = "登録画面に戻る" style ="font-size:20px; width: 140px; height: 40px"></A> <br><br><br> <A HREF="http://localhost/top.php"> <INPUT TYPE = "button" VALUE = "一覧に戻る" style ="font-size:20px; width: 140px; height: 40px"></A> </blockquote> </body> </html> <?php } mysqli_close($con); ?> どういう風にselect文を書けばいですか?

    • ベストアンサー
    • MySQL
  • PHPで使うis_null()関数

    PHP学習者です。 is_null() 関数の使い方で混乱しています。 添付の様な<form>を持つファイル nulltest.php と、それを受けて入力が nullかどうかを検証するファイルreceivee.php を作りました。 入力に何かを入れても、なにも入れなくてもis_null()は何も返しません、というか、False を返しているのだと思います。 逆に、!is_null() と否定形にすると、入力があっても無くても1,つまりtrue が返ります。 入力があれば true が返り、入力が無ければ false が返るようにするにはどうしたらよいのでしょうか?詳しい方どうか教えてください。 上記自作のファイルを以下にコピーします。 <?php echo "------------- nulltest.php ----------------</br>"; $no=null; echo "<form method='post' action='receive.php'>"; echo "<input type='text' name='testinput' value=".$no.">"; echo "<input type='submit' value='ok'>"; echo "</form>"; ?> <?php echo "------------- receive.php ------------------</br>"; $input=$_POST['testinput']; echo "======== ".$input." is ".is_null(input)."</br>"; ?>

    • ベストアンサー
    • PHP
  • javascriptで2箇所のphpの関数を取得したいのです。

    javascriptで2箇所のphpの関数を取得したいのです。 見よう見まねでやっている初心者です。よろしくお願いします。 javascriptにてphpの関数をよびだしてhtmlのinput type="text"に値を出力しようとしています。 2か所のphp を下記のようにhtmlに書いて取得しようとしたのですがどちらか一方しか取得できません。 なんとか両方を読み込めるようにできないでしょうか?分かりにくい質問かと思いますので例を書いて見ましたのでどうかよろしくお願いいたします。 (例) <script type="text/javascript" src="../data/zzz.php?aaa=abc" ></script> <script type="text/javascript" src="../../../data/xxx.php?bbb=abc" ></script> 上記のように書いても片方しか取得しないようです。 以下../dataのzzz.phpのphpです。 <?php $aaa = $_GET['aaa']; header("Content-type: application/x-javascript"); echo "window.onload = function () {"; if ($aaa== 'abb') {echo "document.getElementById(\"xxx\").value=100;","document.getElementById(\"yyy\").value=1;";} elseif ($aaa == 'abc') {echo "document.getElementById(\"tanka\").value=120;","document.getElementById(\"yyy\").value=2;";} echo "}"; ?> 以下../../../dataのxxx.phpのphpです。(例) <?php $bbb = $_GET['bbb']; header("Content-type: application/x-javascript"); echo "window.onload = function () {"; if ($bbb== 'abb') {echo "document.getElementById(\"zzz\").value=50;","document.getElementById(\"vvv\").value=10;";} elseif ($bbb == 'abc') {echo "document.getElementById(\"tanka\").value=51;","document.getElementById(\"vvv\").value=20;";} echo "}"; ?> 以上2か所のディレクトリのphpを取得したいのですが、これはできない事なのでしょうか?ちがうディレクトリから取得しなければ更新作業が大変になってしまうのです。どうかよろしくお願いいたします。

    • ベストアンサー
    • PHP