php MySQL javascriptを使ったウェブアプリの作り方

このQ&Aのポイント
  • php、MySQL、javascriptを使用してウェブアプリを作成する方法について教えてください。
  • 商品コードを入力し、それに対応する商品名と価格を表示し、個数を入力して注文票に商品を追加する方法について教えてください。
  • Submitボタンや変数の受け渡しにPOSTやMySQLを使用している力技な方法ではなく、スマートな方法について教えてください。
回答を見る
  • ベストアンサー

php、MySQL、javascriptで

php MySQL javascriptを使ったウェブアプリを作っています。 商品コードを入力すると、隣の欄にその商品コードに対応する商品名と価格が表示され、それにより入力した商品コードを確認しながら、さらにその隣の個数欄に個数を入力し、その下の登録ボタンをクリックして、注文票に商品を追加していきます。 数品のレコードを登録し、登録が完了したら、最下部の「この内容で注文票を確定する」ボタンをクリックすることにより、注文票が確定されるという内容の部分があります。 その上手な作り方があるでしょうか。 とりあえず、力技で何とか作って動いてはいますが、あまりスマートでないと感じています。 Submitボタンが2つと、商品コードを入力した後に、onBlurで処理ページに移動し、そこからLocationで戻ってくるという作りで、変数の受け渡しにPOSTやMySQLを使い、強引な感じです。 getElementByIdを使うといいかなと思いましたが、phpに値を渡すなど、いくつか難しい箇所があり、断念しました。 コードでなく、言葉でも結構ですから、こういう流れで作ったら?というヒントなどいただければ幸いです。 同様なことを実現しているページや解説ページも大歓迎です。 もちろん、コードによる説明は大歓迎です。 よろしくお願いいたします。

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

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

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

とりあえずAJAXを使うなら JQUERYを導入して作業した方がいいですよ。 var obj = document.getElementById("productNumber").value(); なんてやってたら時間がいくらあってもたりません。 Jquery使えば var obj = $("#productNumber").val(); だけで特定のタグの値も画面繊維無しでリアルタイムに取得できますし。 ただすべてをAJAXで処理していくとなるとPHPファイルの数がふえていきますね。 商品コードを入力して、その商品コードをAJAXで裏側のPHPへPOSTしてPHPで該当のデータを 取得してさらにJQUERYでHTMLへ表示させる。この一連のながれは画面繊維無しで作れますが やるとなると、時間がかかるかも・・。 実際、やることはたいしたことしないと思いますが。 >getElementByIdを使うといいかなと思いましたが、phpに値を渡すなど、いくつか難しい箇所があり、断念しました。 PHPに値を渡すのはJQUERYで簡単にできます。 ajaxメソッドというのが用意されているので比較的簡単にできます。

fitzgerald18
質問者

お礼

ご丁寧な回答ありがとうございました。 この一連のプログラムを作るにあたって、ちょうど、jQueryの解説書が図書館から借りてきた本の中に入っていましたので、勉強してみることにします。 画面遷移がないとスマートですね。 ありがとうございました。

fitzgerald18
質問者

補足

ありがとうございました。 ご回答をヒントに、 http://www.ibm.com/developerworks/jp/opensource/library/os-php-jquery-ajax/ のページを参考にして、jQueryによるajaxを利用して、目的のことができるようになりました。 しかし、最後のところで困ってしまいました。 index.php を下記のようにしました。 <html> <head> <title>test</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"></script> <script type='text/javascript'> $(document).ready(function(){ $("#goodsid").keyup(function(e){ var search_val=$("#goodsid").val(); $.post("./find.php",{search_term : search_val}, function(data){$("#goodsname").html(data);})}); }); </script> </head> <body> <form id="searchform" method="post"> <div> <label>商品番号</label> <input type="text" name="goodsid" id="goodsid" /> </div> </form> <div id="goodsname"></div> <div id="goodsprice"></div> </body> </html> そして、find.phpを下記のようにしました。 <?php //文字化け対策 ini_set("default_charset","utf-8"); // MySQLクラスファイルの取り込みとインスタンスの作成 require_once("../mysql.php"); $mysql = new MySQL; $term = $_POST["search_term"]; $sql = "SELECT goods_name,goods_price FROM `goods_table` WHERE goods_num ='".$term."'"; $mysql->query($sql); $row = $mysql->fetch(); if ($row){ $goodsname = $row['goods_name']; $goodsprice = $row['goods_price']; }else{ $goodsname = ""; $goodsprice = ""; } echo $goodsname; //$goodprice; ?> 基礎ができていないので、簡単なところでつまづきました。 商品番号を入れたら、商品名は受け取る事ができるようになったのですが、ついでに価格も受け取りたいのですが、そこがうまくいきません。 echo $goodsname; echo $goodsprice; とすると、両方の値が返ってきます。 配列で処理しようとしても、うまくいきませんでした。 function(data)の部分が何をしているのか分からず、上記サイトのソースを自己流にアレンジしたからだと思います。 助言などありましたら、助かります。 よろしくお願いします。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 Ajaxをうまく使えば良いと思います。 (どんな環境にも対応という意味では今のような作りが良いかもしれませんが) 商品コードを入力、JavaScriptにて非同期通信を実行して商品情報を取得。 個数を入力して、登録ボタン押下で非同期通信により注文票に登録。 こんな動きにすると必要最低限のパラメータのやり取りで動きを実現できます。 nyuryoku.php←商品コード入力や注文票の内容表示、確定ボタンを表示するphp list.php←注文票の内容をJSONで返すphp syohin.php←商品コードを受け取って商品情報(名称、価格)をJSON形式にて返すphp cyumon.php←商品コード、数量を受け取って注文票に登録するphp kakutei.php←注文票に入っているデータを元に確定処理を行い、結果をJSONで返すphp

fitzgerald18
質問者

お礼

丁寧なご回答ありがとうございます。 やはり質問内容のようなことを実現するには Ajax がいいんですね。 プログラミングが本職ではないので、避けていましたが、これを機会に勉強してみようと思います。 ありがとうございました。

関連するQ&A

  • PHP+MySQLでこのようなシステム

    PHPとMySQLで、このようなシステムを作れないかと考えているのですが、可能か不可能か、もしくはヒントだけでもいただだけないかと思い、質問させていただきました。 まず、PHP+MySQLというのは、javascriptとかも初心者用の本を買ったりしたのですが、こういうところに使うとかいまいち理解できず、 現在PHP+MySQLと必要な時だけjavascriptのサンプルをコピペとかで使って事足りているということです。 PHP+MySQLの知識は、浅い方ですが、データベースを使っての表示や条件抽出くらいはできるくらいです。 主に使うデータベース・ページは、下記の通りです。 データベース内にテーブルが複数あります。 ・table_01 ・table_02 ・table_03 全テーブルデータの一覧を表示させるPHP(1ページ20件毎に表示させています) ・itiran.php 各会員ページのPHP ・mypage.php 「このようなシステム」というのは、 ・一覧ページ【itiran.php】に[追加]ボタンを作り、[追加]を押すと会員ページ【mypage.php】に追加した商品が一覧として表示される ・【itiran.php】および【mypage.php】で追加した商品を一覧から[削除]できる ・【itiran.php】の各商品には、追加している人数[登録数]が表示される([削除]した場合は、人数は-1となる) 【itiran.php】テーブル例 ┼───┼───┼───────┼───┼ │NAME│ZAIKO│お気に入り    │登録数│ ┼───┼───┼───────┼───┼ │ポニョ │2,000 │ 追加       │500 │ ┼───┼───┼───────┼───┼ │ゲド  │1,000 │ 追加       │300 │ ┼───┼───┼───────┼───┼ │トトロ │9,000  │登録済み・・削除│100 │ ┼───┼───┼───────┼───┼ ・データベースは、各テーブル更新があった場合、一度の更新数が多くいので、1テーブルまるごとCSVで更新しています。 ・登録数を、このテーブル内に入れておいた方が良いのでしょうか。 参考になるようなサイトもなく、PHP+MySQL可能か不可能か、もしくはヒントだけでもお願い致します。

    • ベストアンサー
    • PHP
  • 【PHP+MYSQL】 テキストボックスに入力した値をSQLで検索して表示

    PHP超初心者です。 現在、リコール商品のデータベースをPHP+MYSQLで作成を試みております。 そこで、テキストボックスに商品コードを入力後(更新後またはフォーカス移動後)、MYSQLに作成した商品マスタテーブルから該当する商品名を隣のフィールドに表示させたいと思っております。また、入力された商品コードがマスタに存在しなかった場合はその旨のエラーを表記させ、テキストボックスに入力した値を消去もしたいと思っております。 上記処理は画面の遷移は行わないものとします。同一ページ上にエラーは表示させたいと思います。 尚、商品マスタテーブルは商品コード、商品名、原価、上代のカラムを持っております。 上記処理を行うにはどのような方法があるのでしょうか?ご教授ください。 本やネットで数日間色々調べていますが、躓いております。

    • 締切済み
    • PHP
  • PHP+MYSQLについて

    PHP+MYSQLについて 速効!図解プログラミング PHP+MYSQLと言うの本の中で紹介されています。PHPとMysqlで作る会員管理システムについてこの本を元にして構成を変更したく考えています。下記の内容を実現するにはどの様な変更するとうまくいくのでしょうか? 画面遷移を トップページ ⇒ 登録画面(全項目登録) ⇒ 確認画面 メール送信完了画面 メールhttp://~ ⇒ 登録完了 ⇒ ログイン を トップページ ⇒ 登録画面(メールのみの登録) ⇒ 確認画面 メール送信完了画面 メールhttp://~ ⇒ 本登録(全項目登録) ⇒ 登録録完了 ⇒ ログイン この本をお持ちの方、勉強された方どの様な作りにしたらよいと思いますか? ちなみにこの本のサンプルはhttp://book.mycom.co.jp/suport のSection72-81です。 皆様なにとぞお力をお貸しいただけます様によろしくお願いいたします。

    • 締切済み
    • PHP
  • JavaScriptで簡易お買い物サイト

    すっかり、JavaScriptを忘れてしまっていて、それでも即答が求められているので質問させていただきます。 PHPやCGIは使用することは出来ない状態で簡易お買い物サイト制作を依頼されました。PHPやCGIが使用出来ないってことはJavaScriptしか使えない?と思っています。このようなサイト構築はJavaScriptだけで可能でしょうか?(cookieを使用する予定です)ご教授いただけると助かりますのでよろしくお願いいたします! 流れはこんな感じです。 1)商品ページ(商品の詳細の掲載されているページ)+「注文」ボタン 注文ボタンをクリック 2)注文ページ(メールフォームで最終的には送る)   商品名(※)、単価(※)、個数(デフォルトで1個。セレクタで選べるようにする)、削除ボタン   (※)商品ページの「商品名」「単価」が自動表示   合計金額が自動反映   注文に必要なテキストフィールド(送り先住所やお名前など)   他に欲しい商品があれば商品ページに戻って注文ボタンをクリックして追加していく仕組みです。

  • MYSQLをPHPから呼び出したときに文字化けします。

    現在、HTMLでPOST形式でMYSQLにデータを送って、 別のページでそれをPHPで呼び出して HTMLで表にして参照するというページをつくっているのですが、 その中の一部が文字化けしてしまいます。 たとえば「未登録」は「未那俐/td>」などです。 入力した文字の中には文字化けしていないものもあるのですが・・・ これはどういう原因なのでしょうか・・・ ちなみに文字コードはEUCで統一、テキストエディタでの改行コードはCR+LFで設定しています。 教えてください!お願いします!

    • ベストアンサー
    • MySQL
  • PHP+MYSQLで携帯サイトを作成する場合

    毎回人頼みな質問ばかりで申し訳ないです。 携帯電話からフォーム入力された情報をMYSQLに登録し、MYSQLからデータを引っ張ってきて処理し、表示するような仕組みを作りたいのですが、携帯サイトの文字コードはSJIS、MYSQLの文字コードはEUCです。 MYSQLにデータを登録する際や、MYSQLからデータを引っ張ってきた際にどのような処理を行えばよいでしょうか? また、PHP+MYSQLでの携帯サイト構築や、PHPの文字コードの扱い方などに詳しい書籍等がありましたらご教示頂けるとありがたいです。 当方無知なため、他人頼みな質問で申し訳ありませんがお返事お待ちしております。

    • ベストアンサー
    • PHP
  • phpとjavascript ・・・・ について

    授業評価アンケートのデータ収集システムの開発を行っています。 科目及び科目コードを入力させるページ(page1.php)があります。 その入力について、入力ミスをなくすために、「参照」ページ(kamoku.html)をつくり、 そこには予め「科目/科目コード」という項目のある表が用意されており、 そのページ(kamoku.html)へジャンプし、そこで入力したい項目をクリックすると、 page1.phpの科目及び科目コード、各々のテキストボックスに入力したいものを代入することに成功しました。 このような構造にする前は、 手入力した後、 「次ページへ」 をクリックすると、次ページへジャンプするようになっていました。 <FORM method="post" action="page2.php" enctype="application/x-www-form-urlencoded"> javascript を利用したのですが、 これが原因なのでしょうか? javascriptを利用したページの拡張子は必ずhtmlじゃないといけないのでしょうか? (page1.phpをただ単にpage1.htmlにしてもダメでしたが・・・) URLについて、 http://----/page1.php 次ページをクリックすると http://----/page1.php?nendo=6&gakunen=1&class=1&kamokumei=&kamokucode=&kind=1&people=&sub=次ページへ のようになり、昔のように次ページをジャンプせず、入力項目が空になったりします。 どなたか解決法を教えてください!!! お願いします><

    • ベストアンサー
    • PHP
  • PHPでMySQLのユーザを追加したい。

    表題の件で頭を悩ませています。 Web上のフォームで入力したユーザ名を、 そのままMySQLのユーザ名として登録できるような物を作りたいのですが、 PHPにはMySQLのユーザを追加できるような関数はありません。 phpMyadminのように管理者がユーザを追加するのではなく、 一般の人間が希望のユーザ名をフォームに入力して「追加」などのボタンを押すと、 その名前をMySQLのユーザ名として登録したいのです。 何か良い方法は無いでしょうか? お知恵をお貸し下さい。

    • ベストアンサー
    • PHP
  • PHP5+Apache2+MySQLの設定について

    PHP5とAPACHE,MySQLの文字コードについて聞きたいのですが、文字コードはすべて同じものを使わなければならないのでしょうか。 やはりSJISで統一しなければならないのかと思い質問させていただきました。 あとMySQLを使っていて購入した参考書には漢字入力ができたのですが、インストールが上手くいってないか文字コードの設定だかで漢字を入力できないでいます。 初歩的なことで申し訳ないのですがよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPとMYSQLを使用したデータベース編集。

    PHPとMYSQLを使用して、従業員のシフト管理のシステムを作ろうと思っています。 テーブルには、従業員ID、日付、出勤時間、退勤時間のカラムを持たせるつもりです。 そこから日付を指定して、その日に出勤する従業員を一覧にしたり、従業員を指定して、その従業員の一週間分のシフトを一覧にしたいと考えています。 そこで、データをPHPでMYSQLに入力したいのですが、一日ずつデータをデータベースに入力することはできるのですが、一週間分のシフトをまとめてMYSQLに入力する方法がわかりません。 何かよい方法はありませんか? ヒントになるような言葉、参考になりそうなウェブサイト、書籍、ささいなことでもアドバイスいただけたらと思います。よろしくお願いします。 イメージとしては、従業員ごとに日付の欄が一週間分あり、その日付の欄ごとに出勤時間、退勤時間を入力できる欄があり、そのフォームを入力してから送信ボタンを押すと入力した一週間分のデータがMYSQLに入力されるようにしたいです。 わかりにくいかもしれませんが、よろしくおねがいします。

    • ベストアンサー
    • MySQL

専門家に質問してみよう