- ベストアンサー
php MySQL javascriptを使ったウェブアプリの作り方
- php、MySQL、javascriptを使用してウェブアプリを作成する方法について教えてください。
- 商品コードを入力し、それに対応する商品名と価格を表示し、個数を入力して注文票に商品を追加する方法について教えてください。
- Submitボタンや変数の受け渡しにPOSTやMySQLを使用している力技な方法ではなく、スマートな方法について教えてください。
- みんなの回答 (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メソッドというのが用意されているので比較的簡単にできます。
その他の回答 (1)
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 Ajaxをうまく使えば良いと思います。 (どんな環境にも対応という意味では今のような作りが良いかもしれませんが) 商品コードを入力、JavaScriptにて非同期通信を実行して商品情報を取得。 個数を入力して、登録ボタン押下で非同期通信により注文票に登録。 こんな動きにすると必要最低限のパラメータのやり取りで動きを実現できます。 nyuryoku.php←商品コード入力や注文票の内容表示、確定ボタンを表示するphp list.php←注文票の内容をJSONで返すphp syohin.php←商品コードを受け取って商品情報(名称、価格)をJSON形式にて返すphp cyumon.php←商品コード、数量を受け取って注文票に登録するphp kakutei.php←注文票に入っているデータを元に確定処理を行い、結果をJSONで返すphp
お礼
丁寧なご回答ありがとうございます。 やはり質問内容のようなことを実現するには Ajax がいいんですね。 プログラミングが本職ではないので、避けていましたが、これを機会に勉強してみようと思います。 ありがとうございました。
お礼
ご丁寧な回答ありがとうございました。 この一連のプログラムを作るにあたって、ちょうど、jQueryの解説書が図書館から借りてきた本の中に入っていましたので、勉強してみることにします。 画面遷移がないとスマートですね。 ありがとうございました。
補足
ありがとうございました。 ご回答をヒントに、 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)の部分が何をしているのか分からず、上記サイトのソースを自己流にアレンジしたからだと思います。 助言などありましたら、助かります。 よろしくお願いします。