• 締切済み

商品コードを入力で、商品名、金額を表示、合計計算

java script かajaxのカテゴリーだと思います。 受注管理のシステムを作成しております。 PHP 5.x MySQL 5.x です。 管理者が商品受注のデータを入力する際に、商品名をプルダウン等で選ぶのがイヤで 商品コード(例:1001等)を手打ちで入力して、その瞬間その画面で、商品名と金額を呼び出して、あとは個数を入れる という作業を10商品くらい繰りかした後、単価×個数を全て計算して合計金額をその場で 表示されることはできないでしょうか? どなたかお詳しい方、お知恵を貸してください!!

みんなの回答

回答No.6

そして、さっそくていせい。 これらしきところを、これに。   ajax ('sql.php', 'post', {sql: 'SELECT name, tanka FROM database_name WHERE id=' + cd + ' LIMIT 1'}, function (res) { やっつけでかいたから、うごかせないなら、あきらめてね

回答No.5

その2 (function () { // Ajax  if ('undefined' === typeof XMLHttpRequest)   this.XMLHttpRequest =    (function () {     for (var i = 0, h; h = arguments[i++];)      try { h (); return h; } catch (err) { ; }     return null;    })(function () { return new ActiveXObject ('Msxml2.XMLHTTP.6.0') },      function () { return new ActiveXObject ('Msxml2.XMLHTTP.3.0') });    var obj2str =   (function (obj) {    var p = [];    var i, I, k, q, idx, key, val;    switch (typeof obj) {    case 'string' :     obj = obj.split ('\u0026');     for (i = 0, I = obj.length; i < I; i++) {      if (q = obj[i]) {       idx = q.indexOf ('=');       if (-1 === idx)        break;       key = encodeURIComponent ( q.substring (0, idx));       val = encodeURIComponent ( q.substring (idx + 1)) || '';       p.push (key + '=' + val);      }     }     return (p.length) ? '\u0026' + p.join ('\u0026'): '';        case 'object' :     for (i in obj)      if (obj.hasOwnProperty (i))       p.push (encodeURIComponent (i) + '=' + encodeURIComponent (obj[i]));     return (p.length) ? '\u0026' + p.join ('\u0026'): '';    }   });  var ajax =   (function (uri, method, parameter, callbackfn, callbackobj) {    var httpObj;    var para;    if (httpObj = new XMLHttpRequest) {     para = 'SendTime=' + (new Date).getTime() + obj2str (parameter);          if ('GET' === method.toUpperCase ())      uri += '?' + para;     httpObj.open (method, uri, true);     httpObj.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');     httpObj.onreadystatechange =      function () {       if (4 === httpObj.readyState) {        try {         if (200 === httpObj.status)          callbackfn.call (callbackobj, httpObj.responseText);        }        catch (err) { ; }        httpObj.onreadystatechange = new Function;        uri = method = parameter = callbackfn = callbackobj = httpObj = para = null;       }      };     httpObj.send (para);    }   });  this.ajax = ajax; })(); </script>

回答No.4

すくりぷとぶぶんをぶんかつ。 <script> var table = document.getElementById ('hoge'); function calculate () {  var tr = table.querySelectorAll ('tbody > tr');  Array.forEach (tr, function (tr, idx) {   var inp = tr.querySelectorAll ('input');      var up = parseFloat (inp[2].value);   var qt = parseFloat (inp[3].value);   var pr = 0;      if (idx === this.max)    inp[4].value = this.total;      else if (isNaN (up) || isNaN (qt))    return;      else {    inp[4].value = (pr = up * qt);    this.total += pr;   }  }, {max: tr.length - 1, total : 0}); } function handler (evt) { /*@cc_on*/  var e = evt./*@if (@_jscript) srcElement @else@*/ target /*@end@*/;  var tr = e.parentNode.parentNode;  var inp = tr.querySelectorAll ('input');  var cd;    switch (e.name) {  case 'qt' : case 'up' :   calculate ();   break;  case 'cd' :   cd = e.value;   ajax ('sql.php', 'post', {sql: 'SELECT name, furigana FROM zenkohdo.shain WHERE id=' + cd + ' LIMIT 1'}, function (res) {    var rec;    if (! /^Error/.test (res)) {     rec = res.split (/\u001f/g);     this[1].value = rec[0];     this[2].value = rec[1];     this[3].focus ();    }   }, inp);   break;  } } table./*@if (@_jscript)  attachEvent ('onfocusout' + @else@*/  addEventListener ('blur'/*@end@*/,   handler, true); (function (t) {  var tbody = t.querySelector ('tbody');  var tr = tbody.querySelector ('tr');  var max = 10;    while (--max)   tbody.appendChild (tr.cloneNode (true)); })(table);

回答No.3

ajaxをとうさいしてみる でんじゃらすだし、すくりぷとからSQLぶんをおくるなんてもってのほかだけど、やってみる。 うごかせないなら、あきらめようね まずは、sql.php として <?php mb_language ('Japanese'); define ('HOST', '127.0.0.1'); define ('USER', 'root'); define ('PASS', 'xxxxxxxxxxx'); $ID = mysql_connect (HOST, USER, PASS); if ($ID) {  $sql = $_POST['sql'];  if ($sql) {   $R = mysql_query ($sql, $ID);      if ($R) {    while ($r = mysql_fetch_array ($R, MYSQL_NUM))     $b[] = join (chr (31), $r);    exit (join (chr (30), $b));   }  } } exit ('Error'); ?>

回答No.2

提案としてこんなUIはどうでしょう。(コード汚いのは重々承知です。) ※絞込しかやってないです。 <body> <input type="text" id="inputArea"> <div id="output"></div> <script type="text/javascript"> /* @regepan */ var inputArea = document.getElementById('inputArea'); inputArea.addEventListener( 'keyup', keyupEvent, false ); var output = document.getElementById('output'); var txt; var i; var items = []; // 初期化 function init() { for( i = 0; i < 50; i++ ) { var obj = {}; var num = Math.floor( Math.random() * 10 ) + ''; num += Math.floor( Math.random() * 10 ) + ''; num += Math.floor( Math.random() * 10 ); obj.id = num; obj.name = '商品名'; obj.price = 1000; txt = document.createTextNode( obj.id + ' ' + obj.name + ' ' + obj.price ); var a = document.createElement('a'); a.href = '#'; var p = document.createElement('p');; a.appendChild( txt ) p.appendChild( a ); output.appendChild( p ); items.push( obj ); } } init(); // itemの再構築 function makeList() { for( i = 0; i < items.length; i++ ) { var obj = items[i]; txt = document.createTextNode( obj.id + ' ' + obj.name + ' ' + obj.price ); var a = document.createElement('a'); a.href = '#'; var p = document.createElement('p');; a.appendChild( txt ) p.appendChild( a ); output.appendChild( p ); } } // keyupEvent function keyupEvent() { var pool = []; var temp; var str; var val; output.innerHTML = ''; for( i = 0; i < items.length; i++ ) { val = this.value; val = val.slice( 0, this.value.length ); var item = items[i]; temp = item.id; temp = temp.slice( 0, this.value.length ); temp -= 0; if( val == '' ) { makeList(); break; } else { if( temp == val ) { txt = document.createTextNode( item.id + ' ' + item.name + ' ' + item.price ); var a = document.createElement('a'); a.href = '#'; var p = document.createElement('p'); a.appendChild( txt ) p.appendChild( a ); output.appendChild( p ); }// if }// if }// for }// keyupEvent </script> </body>

回答No.1

もじすうせいげんがなかったら、もっとかけたのに、ざんねん。 こーどのしつも、ざんねんだけど、ajax は、だれかに! <!DOCTYPE html> <title></title> <style type="text/css"> table, td, th { border :1px #888 solid } td input[type="text"] { border : 0px none } </style> <body> <form action="#"> <table id="hoge"> <thead><tr><th>コード<th>商品名<th>単価<th>個数<th>金額</thead> <tbody> <tr> <td><input type="text" name="cd" value="" size="10"> <td><input type="text" name="pn" value="" size="20"> <td><input type="text" name="up" value="" size="10"> <td><input type="text" name="qt" value="" size="10"> <td><input type="text" name="pr" value="" size="16"> </tbody> </table> </form> <script> var table = document.getElementById ('hoge'); function calculate () {  var tr = table.querySelectorAll ('tbody > tr');  Array.forEach (tr, function (tr, idx) {   var inp = tr.querySelectorAll ('input');      var up = parseFloat (inp[2].value);   var qt = parseFloat (inp[3].value);   var pr = 0;      if (idx === this.max)    inp[4].value = this.total;      else if (isNaN (up) || isNaN (qt))    return;      else {    inp[4].value = (pr = up * qt);    this.total += pr;   }  }, {max: tr.length - 1, total : 0}); } function handler (evt) { /*@cc_on*/  var e = evt./*@if (@_jscript) srcElement @else@*/ target /*@end@*/;  var tr = e.parentNode.parentNode;  var inp = tr.querySelectorAll ('input');  var cd;    switch (e.name) {  case 'qt' : case 'up' :   calculate ();   break;  case 'cd' :   cd = e.value;   // ここにAjaxでよびだすこーどをかく!   if (cd === '123') {    inp[1].value = '洋野町名産 塩ウニ';    inp[2].value = '1800';   }   break;  } } table./*@if (@_jscript)  attachEvent ('onfocusout' + @else@*/  addEventListener ('blur'/*@end@*/,   handler, true); (function (t) {  var tbody = t.querySelector ('tbody');  var tr = tbody.querySelector ('tr');  var max = 10;    while (--max)   tbody.appendChild (tr.cloneNode (true)); })(table); </script>

関連するQ&A

  • 商品の単価と個数を入力するだけで合計金額を出したいのですが。

    エクセルのA列に商品名を入力(現在42行あります)し、B列に商品の単価を入力、さらにC列以降は4月(C列)、5月(D列)、6月(E列)・・・というふうに月別に列を設けて表を作っています。 そして、商品を注文した場合にだけ、各商品の個数を、その商品名の行(で且つその月の列)に入力していき、一番下の行(現在は43行目)にその月に注文した全てのものの合計金額がいくらであったかを表示させています。 最初は注文する商品が少なかったので、 =$B$1*C1+$B$2*C2+$B$3*C3 というような計算式を合計金額の欄に入力し、それを月ごとの合計金額の欄にコピーして貼り付けて使用していたのですが、だんだん商品が増え、計算式が膨大になって見苦しくなってきました。 もっと簡単に計算してくれる関数があればと思うのですが、みつかりません。 どなたか教えてください。

  • EXCELで日付をKEYとしてデータをもってくる方法

    お世話になります。 EXCELで日付をKEYとして、別シートからVLOOKUP等で データをもってきたいのですがその方法についてご教授ください。 具体的には、 シートAに10月の商品受注データが入っていると仮定し、 シートBのどこかのセルに10/1、10/7、と入力することで シートBに10/1-7迄の受注データのみを表示させることができればと 考えています。 ------------------------------- シートA(10月受注データ) 10/1 商品X 個数 単価 10/1 商品X 個数 単価 10/3 商品Y 個数 単価 10/4 商品Z 個数 単価 10/8  商品X 個数 単価 10/10 商品Z 個数 単価  ・  ・  ・ ------------------------------- シートB(10/1~10/7迄の受注データ) 10/1 商品X 個数 単価 10/1 商品X 個数 単価 10/3 商品Y 個数 単価 10/4 商品Z 個数 単価 ------------------------------- ご回答宜しくお願いいたします。

  • ★アクセス2000★条件付き合計金額の出し方

    請求書をメインフォームとサブフォームで作っています。 サブフォームは、「商品ID」「商品名」「課税区分」「単価」「金額」からなり、受注明細を入力しています。 商品は2つに分類され(A・B)、それぞれの合計金額を計算したいのですが、どうやったらいいのか分からないので、ご回答をお願いします。 分類の仕方ですが A⇒「商品ID」 0001~0100 B⇒「商品ID」 0101~0200 です。 そしてもう1つ、消費税の計算もうまくできません。 「課税区分」には 課税 ⇒1 非課税⇒2 と入力してあります。 どなたかご回答をお願い致します。

  • エクセル関数、コード入力で、商品名、単価の表示

    初心者ですいません。 本やネットで調べたのですが、いまいちわかりません。 エクセルでコードを入力しただけで、商品名と単価を一括表示するにはどうしたらよいのでしょうか? 商品のコード、商品名、単価一覧を作成したのですが、その先がどうにもわかりません。 宜しくお願い致します。

  • 入力した合計数値を振り分けたい

    関数とかマクロなど理解していない初心者でエクセル2003を使用しいます。 例えば 1Aのセルに1~10個(単価50円)と入力済 2Aのセルに11~20個(単価40円)と入力済 3Aのセルに21~30個(単価30円)と入力済 1B~3Bのセルに個数欄未入力 1C~3Cのセルに金額自動計算式入力済 4Bのセルに合計個数欄未入力 4Cのセルに合計金額自動計算式入力済 とした場合、例えば4Bの合計個数に29個と入力すると、自動的に1Bに10個、2Bに10個、3Bに9個と個数が振り分けられる様にしたいのですが、できるのでしょうか?

  • javascriptで合計金額を算出したいです。

    はじめまして。javascriptに関しまして、初心者ですので是非教えていただけたら幸いです。 ショッピング用のwebサイトを作成していまして、formを商品名も個数もプルダウンで作成した場合、<選択した商品>×<個数>の合計金額の算出は可能でしょうか?また合計金額が3万円以上なら送料無料、3万円未満なら送料一律600円という機能も加えたいのですが・・・ ちなみに消費税の計算は大丈夫です。 どなたかわかる方がいましたら、教えていただけると本当に助かります。どうかよろしくお願い致します。

  • 原産国別で商品毎の個数と金額の合計を計算したい。

    excel2016にてインボイスを作成しております。 A列に商品名、B列に(原産国)を入力しておりますが、画像の→先のように原産国別に、商品名毎の個数と金額の合計を計算し、結果を別シート(Sheet2)へ貼り付けようとしております。 ピポットテーブルは小計機能は集計行が入り組んでリストとして見にくいので、使用したくはないです。 ご教授いただけたら幸いです。 ちなみに自分はvbaを少し使用できます。簡素なメソッドやステートメントがあればご教授ください。

  • 注文した商品名をマスターで作るか

    Access 2013 vba 今工事のための材料の注文履歴を保存するテーブルと画面を作っています。 この商品名や、単価、仕入れ値などのデータは、管理テーブルを作成してそこで管理し、そこから商品IDを選択すると、注文履歴の画面にIDだけがセットされるような作りにしようと考えています。 【注文内容の入力画面A】 ・注文日 ・受注ID ・商品ID ・注文先ID ・単価 ・数量 ・単位 【商品管理テーブル】 ・商品ID ・メーカーID ・単価 ・品番 このようにすると、商品管理のテーブルのレコードを勝手に削除されたりした場合に、大変な事になることを考えると躊躇してしまいます。 商品管理のテーブルはあくまでも参照にとどめて、その商品名や品番などは、注文履歴を保存する画面のフィールドに保存したほうが良いか、迷っています。 この点で良いアドバイスがあれば、よろしくお願いします。

  • リピートしている商品の金額を調べたい!

    教えて!頂きたいです。 リピートされている商品の合計金額を別ワークブックに集計希望です。 新規・リピートを含む受注が全てが記されている、受注リストがあります。 新規には区分1の入力があります。 区分| 商品名 | 金額 1   A薬品   500     A薬品   600     A薬品   400 この場合、「区分1」でない、600円と400円を集計して 違うワークブックに「A薬品」「1000円」としたいのです。 何の感じでいけばいいのか、わかりません。 お教えいただけますでしょうか?

  • 任意のセルに小計、合計と入力したら自動計算してくれ

    エクセル2007でVBAを何度も挫折しています 任意のセルに小計、合計と入力したら自動計算してくれるVBAの方法を教えてください セル G21 商品名 L21 詳細 V21 数量 X21 単位 Z21 単価 AD21 金額(V21:数量*Z21:単価) の何処にでもある見積書なのですが 任意のG行に小計・合計と入力すると AD行に金額が自動で入力させるVBAの仕方が知りたいです。 3行ほどの見積もあれば100行を超える見積もあります 教えてください。

専門家に質問してみよう