フォームからのデータ送信について

このQ&Aのポイント
  • プログラミングの初心者です。以下のソースでフォーム画面を作成しました。これでデータベースへの書き込みができるのかどうかを教えてください。
  • フォーム画面の作成とデータベースへの書き込みについての質問です。
  • プログラミング初心者がフォームからのデータ送信とデータベースへの書き込みの方法について教えてください。
回答を見る
  • ベストアンサー

フォームからのデータ送信について

プログラミングの初心者です。 以下のソースでフォーム画面を作成しました。 これでデータベースへの書き込みができるのかどうかを教えてください。 よろしくお願いします。 <head> <script LANGUAGE="JavaScript"> <!--// function check(){ var strMSG; strMSG = document.search.MSG.value; document.open(); document.writeln('<html>\n<head>'); document.writeln('<title>送信内容確認</title>'); document.writeln('</head>'); document.writeln('<body>'); document.writeln('<form method="POST" action="send_data.php">'); document.writeln(Rsei); document.writeln(strMSG); document.writeln('<br>\n<br>\n<input type="submit" value="送 信"> '); document.writeln('<input type="button" value="修 正" onclick="history.back()">\n</form>'); document.writeln('</body>\n</html>'); document.close(); } //--> </script> </head> <body> <form name="search" method="POST"> ご意見お聞かせください<br> <textarea name="MSG"></textarea><br> <input type="button" value=" 確認 " onClick="check()"> <input type=reset value=" 取消 "><br> </form> </body> send_data.phpは以下の通りです。 <?php $con = mysql_connect("localhost","root",""); $selectdb = mysql_select_db("test",$con); $sql = "insert into table(msg) values('$_POST[MSG]')"; $result = mysql_query($sql,$con); mysql_free_result($result); mysql_close($con); ?> <html> <head><title>送信終了</title></head> <body>送信完了しました</body></html>

  • PHP
  • 回答数1
  • ありがとう数1

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

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

まずフォーム側の document.writeln(Rsei); 変数が無いのでエラーになります。 (おそらくここにアップする際の削り残しだと思いますが) また、確認フォームを表示する際に MSGの値がスクリプトに渡されませんので document.writeln('<input type="hidden" name="MSG" value="' + strMSG + '">'); を追加してください。 これでフォームは正常に動きます。 さらにPHPですがSQL文でテーブルフィールド名を ` で囲って下さい。 " でもいいですがエスケープしなければならないので面倒くさいですから。 $sql = "insert into `table` (`msg`) values('$_POST[MSG]')"; 最後に、insert文の時は返値がないのでmysql_free_result($result) でエラーが起こりました。 select MSG from table; などを実行した際にメモリを解放するために利用しますが 通常スクリプトの実行が終わると勝手に解放してくれますので不要です。

macheriemari
質問者

お礼

お礼が遅くなりまして申し訳ありませんでした。 どう質問したらいいのかわからずソースを全部アップしたのですが、 全部読んで頂いてありがとうございました。 フォームのほうですが、type="hidden"はこういう場合に使うのですね。 PHPについては他にも色々あって苦心しましたが、何とか書き込みできました! 業務上、勉強する時間なく例題を真似ながら作っています。 また何かありましたら、どうぞよろしくお願いします。 ありがとうございました。

関連するQ&A

  • Insert文がうまく実行されません

    データベースへの書込みを試みています。 先日質問させていただき、この状態で問題なく動いているのですが 入力フィールドを増やすと送信後、send_data.phpのソースが表示されてしまいます。 どなたかよろしくお願いします。 【index.html】 <head><script LANGUAGE="JavaScript"> <!--// function check(){ var strMSG; strMSG = document.search.msg.value; document.open(); document.writeln('<html>\n<head>'); document.writeln('<title></title>'); document.writeln('</head>'); document.writeln('<body>'); document.writeln('<form method="POST" action="send_data.php">'); document.writeln(strMSG); document.writeln('<input type="hidden" name="MSG" value="' + strMSG + '">'); document.writeln('<br>\n<br>\n<input type="submit" value="送信"> '); document.writeln('<input type="button" value="修正" onclick="history.back()">\n</form>'); document.writeln('</body>\n</html>'); document.close(); } //--> </script> </head> <body> <form name="search" method="POST"> ご意見<br> <textarea name="msg"></textarea><br> <input type="button" value=" 確認 " onClick="check()"> <input type=reset value=" 取消 "><br> </form></body> 【send_data.php】 <?php $con = mysql_connect("localhost","root",""); $selectdb = mysql_select_db("bri_db",$con); $sql = "insert into t_research(msg) values('$_POST[MSG]')"; mysql_query($sql,$con); mysql_close($con); ?> <html> <head></head> <body> 完了<br> <a href="index.html">続けて入力 </body> </html>

    • ベストアンサー
    • PHP
  • フォームの確認画面がうまく表示されません

    フォームで氏名を入力して確認画面を出したいのですが、 確認画面で、名前が出ずにソースがそのまま表示されます。 どうしてもわからないので、どなたかよろしくお願いします。 <script LANGUAGE="JavaScript"> <!--// function check(){ document.open(); document.writeln('<html>\n<head>'); document.writeln('<title>送信内容確認</title>'); document.writeln('</head>\n<body>\n<table>'); document.write('<tr>\n<td>名前:</td>\n<td>'); document.write('+document.kakunin.NAME.value+'); document.writeln('</td>\n</tr>\n</table>'); document.writeln('</body>\n</html>'); document.close(); } //--> </script> </head> <body> <form NAME="kakunin" action="mailto:aaa@hotmail.com" method="POST" enctype="text/plain"> 名前<input type="text" name="NAME"><br><br> <input type="button" value=" 確認 " onClick="check()"> </body>

  • 複数のフォームから送信

    複数のフォームからtextの値を送信したいのですができますか?〒番号を入力して検索ボタンをおすと住所がでてきて最後に登録をしたいです。検索だけのプログラムはできてますがフォームを二つにすると両方のsubmitが登録になります・・・ 一応自分でいろいろためしましたがだめでした。。。 html,php,javascriptです。 二つともだめでした。。。。 rei1.php ------------------------- <html> <body <form method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> <br> <form method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> -------------------------------------- rei2.php -------------------------------------- <html> <head> <script language="javascript"><!-- function send() { document.nform.submit(); document.nform2.submit(); document.nform3.submit(); } //--></script> </head> <body> <form name="nform" method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> </form> <form name="nform2" method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> <form name="nform3" method="POST" action="1.php"> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> ------------------------------------

  • フォームの表示が消えてしまう・・・

    初歩的なことでつまづいております。 フォームを利用して「入力」フォームに文字を入れ、「入力!」ボタンを押すと「結果」フォームにその文字を表示させたいのですがうまくいきません。 やりたいことは、 1.「入力」フォームに文字を入れます(たとえば"123") 2.「入力!」ボタンを押します 3.すると「結果」フォームに"123"と表示させたいです  4.また、「入力」フォームにはそのまま"123"が表示されたままにしたいです なぜか下記の記述だとボタンを押した瞬間にすべてのフォームの文字表示が消えてしまいます。 これはどうしてなのでしょうか?すみませんがよろしくお願いします。 <HTML> <HEAD> <TITLE></TITLE> <SCRIPT LANGUAGE="JavaScript"><!-- function calcButton() { var inputValue = document.calc.input.value; document.calc.result.value = inputValue; } //--></SCRIPT> </HEAD> <BODY> <FORM name="calc" action=""> 入力<INPUT type="text" size="5" name="input"><BR> 結果<INPUT type="text" size="5" name="result"><BR> <INPUT type="submit" value="入力!" onClick="calcButton()"> </FORM> </BODY></HTML>

  • phpでmysqlに接続してデータを登録

    入力フォームをhtmlに作って それをidとpassを入力して それをmysqlに登録したいのですが うまくできません <html> <head> <meta http-equiv="Content-Type"content="text/html;charset="utf-8"/> <title>登録</title> </head> <body> <form action="touroku.php"method="post"> 登録id :<br /> <input type="text"name="id"size="10"value="" /><br /> パス:<br /> <input type="text"name="pass"size="10"value="" /><br /> <br /> <input type="submit"value="登録する" /> </form> </body> </html> という感じに 入力フォームは作ったのですが それからそれをmysqlにどうやって登録をするのかわかりません 詳しく解説されてわかりやすいサイトなどを教えてください もしくは教えてください

  • メールフォームのソースについて

    メールフォームがうまく作れません。下のソースでおかしなところがあったら 教えていただけませんか?よろしくお願いします。 html> <head> <title>sample</title> <script Language="JavaScript"><!-- function set(sObj) { str = sObj.options[sObj.selectedIndex].value; document.myFORM.action = "mailto:" + str; } // --></script> </head> <body> <form name="myFORM" method="post" action="mailto:abc@***.ne.jp" enctype="text/plain"> <br> <input type="text" value="test" NAME="data"><br> <input type="submit" VALUE="送信"><br> </form> </body> </html>

  • メールフォームの中身が文字化けする

    携帯でホームページのURLを打つのはとても面倒なのでPCから任意の携帯へ特定ホームページのURLを送るスクリプトを組みました。 でもメールタイトルやメール本文の日本語が文字化けしてしまうのでローマ字でやっています。何かいい方法はありませんか? <html> <head> <title>mail</title> <script language="JavaScript"> var atesaki; </script> </head> <body> <form name="form1"> ここに携帯のアドレスを入れてから送信画面へ進んでください。<br> <input type="text" size="50" maxlength="256" name="MAIL"> <br><br> <input type="button" value="送信画面へ進む" onClick="dainyuu()" > </form> <script language="JavaScript"> <!-- function dainyuu(){ atesaki=form1.MAIL.value; if(atesaki.indexOf("@")>0) { newpage() } } function newpage(){ document.write('<body>'); document.write("<form name='form2'><input type='button' value='戻 る' onClick='history.back()'></form><BR>"); document.write('<form action=mailto:'); document.write(atesaki); document.write("?Subject='URL WO OKURIMASU' method=POST enctype=text/plain name=form3><br>"); document.write("送信を押すと携帯の"); document.write(atesaki); document.write("にURL<br>http://xxxxxxxxxxxxが送信されます。<br>"); document.write("<input type=hidden size=50 maxlength=256 name=URL value=URL WA KORE DESU http://xxxxxxxxxxxx> <br><br>"); document.write('<input type="submit" value="送 信"></form>'); } //--> </script> </body> </html>

  • 文字列でなくて数値として処理をしたい。

    年度があって、2008 ボタンをクリックすると1を足して2009としたいのですが、文字列として扱われ20081となってしまいます。 数値として処理するにはどのように修正したらいいのでしょうか? ご存知の方教えてください。 <script type="text/javascript"> function test(parts){ var result = document.getElementById('result'); nendo = document.tForm.y.value; if(nendo == ""){ document.tForm.msg.value = "2008"; } else {document.tForm.msg.value = nendo + 1; } } </script> </HEAD> <BODY> </p> <form name="tForm"> <p> <INPUT TYPE="text" NAME="msg" SIZE=20 id="y"> <br> <input type="button" name="" value="足し算" onClick="test(this)">

  • データーベース接続 入力フォーム

    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
  • 親ウィンドウのボタンからサブウィンドウを閉じたいのですが・・・。

    いつもお世話になっています。 JavaScript初心者です。 window.closeについて質問させて下さい。 メインウィンドウにある「next」という次のページに移るボタンをクリックすると、開かれているサブウィンドウを閉じる処理を実行したいのですが、window.closeを使えばいいということしか分からず、何をどこに書けば良いのか困っています。(サブウィンドウにも「閉じる」ボタンを作成していますが、親ウィンドウからも操作が出来るようにしたいと思っています。) どうか教えていただけませんでしょうか。 ソースは次の通りです。 ----------------------------- //サブウィンドウの表示 <script language="JavaScript"> function sub(msg){ var page =window.open("", "HintPage","screenX=400,screenY=600,left=400,top=600,width=400,height=250,scrollbars=yes,resizable=yes"); page.document.open(); page.document.writeln("<html>"); page.document.writeln("<head><title>{test}</title></head>"); page.document.writeln("<body leftmargin=\"15\" rightmargin=\"15\" topmargin=\"20\">"); page.document.writeln("<h3>[ {test} ]</h3><hr><br>" + msg + "<br><br><hr><br>"); page.document.writeln("<div align=center>"); page.document.writeln("<input type=button value=close onclick=\"javascript:window.close()\"></div>"); page.document.writeln("</body>"); page.document.writeln("</html>\n"); page.document.close(); page.focus(); } </script> </HEAD> //「next」ボタンの表示 <body> <table cellpadding=3 cellspacing=5 align="right"> <tr> <td bgcolor="#9999ff" align="right"><input type="submit" name="next" value="{nextBtn}" style="width: 140px; height: 20.5px;" onClick="setPname('{next}')" {disabled2}></td></tr> </table> </body> ---------------------------- どうぞよろしくお願い致します。 説明不足の点がありましたら補足させて頂きます。

専門家に質問してみよう