• ベストアンサー
※ 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.2

もしかして、 document.getElementById("DSC").innerHTML = "<?php $pn = '" + PN + "'; echo getDescription($pn); ?>"; 結合したい?のですか?であれば、こうではないですか? document.getElementById("DSC").innerHTML = PN + "<?php echo getDescription($pn); ?>"; サーバー側で、"<?php echo getDescription($pn); ?>" この部分が確定して例えば"あいうえお" だとしたら var PN = document.getElementById("PN").value; 例えばこれが、"わ~”; なら、上のPNと"<?php echo getDescription($pn); ?>" これで、 PN = "わ~" + "あいうえお"; = PN = "わ~あいうえお"; が、インナーに入りますよ。

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

根本的なミスがあります。 PHPはサーバーサイドで JavaScriptはクライアントサイドですよ。 なので、手元にソースが落ちて来た時点でPHPの成形結果が すでに固定されているのです。 それをJavaScriptで処理するので、 function getDesc(){ var PN = document.getElementById("PN").value; PN = "'"+ PN +"'"; document.getElementById("DSC").innerHTML = "<?php $pn = '" + PN + "'; echo getDescription($pn); ?>";         ↑このPNは、クライアントが作るJSの変数         しかし、PHPはサーバーサイドなので、         成形段階でこの辺数はないので、無効=""でしかない。 } というのが、原因です。 なので、サーバー内では何をすべきか? クライアント内で何をすべきかを わけて考えれば、この件は解決できます。 ということで回答は <?php 内でのPNはサーバー空間で <script>内のvar PNはクライアント空間なのを ごっちゃ混ぜにしたことが原因です。

papashiroSooke
質問者

お礼

早速にご回答を頂き、有難うございます。 AsarKingChangさんにはいつもお世話になっていて本当に感謝です。 ご回答ではPNはJS変数なのでPHPでは無効とおっしゃいましたが、この echo getDescription($pn); の部分をecho $pn; に変えると JS変数PNの値を保持したPHP変数をちゃんと表示します。 単なる変数なら表示するのに、関数の戻り値は何故表示されないのかというのが私の疑問です。 問題の行 document.getElementById("DSC").innerHTML =  "<?php $pn = '" + PN + "'; echo getDescription($pn); ?>"; の右辺は、PN='012-022-20' とすると結局次のようなPHPコードを表すHTMLタグになりますよね。 <?php $pn = '012-022-20'; echo getDescription($pn); ?> このようなコードは別にJS関数の中だけでもなくHTMLファイルのあちこちで使っています。 これを左辺に代入するのだから、それはHTMLのタグとして解釈されてPHPのコードが実行されると思いますし、 実際に変数の値は表示されたのです。 JSはクライアントサイドでPHPはサーバーサイドということだけではよく理解できません。 どうかよろしくお願いいたします。

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

関連する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